【问题标题】:Submitting a form using jquery doesn't submit it as remote: true rails 4.2使用 jquery 提交表单不会将其作为远程提交:true rails 4.2
【发布时间】:2016-08-03 14:36:28
【问题描述】:

当用户单击一个按钮时,我必须提交一个表单,因为我在该按钮上使用了 onclick JS 函数调用。

在该函数中,我只需使用.submit() 函数提交我想要的表单。

我使用的JS函数,

$('#form_id').submit()

我也在form_tag 中使用过:remote=>true。 HTML 方法已更改为使用:method=> "post" 发布。

控制器也有适当的respond_to 块和format.js 块。

查看文件有正确的.js.erb 文件。

但是每当我单击按钮时,它都会被处理为 HTML。如果我手动单击该表单的提交按钮,它将成功作为 JS 处理。

如何解决这个问题??

【问题讨论】:

    标签: jquery ruby-on-rails


    【解决方案1】:
    form = document.querySelector('#form_id');
    form.dispatchEvent(new Event('submit', {bubbles: true})); // you can specify more options in `Event()` for reliability across different browsers.
    

    form = document.querySelector('#form_id');
    Rails.fire(form, 'submit');
    

    找到答案here

    【讨论】:

      【解决方案2】:

      您需要使用 requestSubmit 而不是使用 jquery submit(或纯 javascript submit

      https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement/submit

      这描述了submit(jQuery 使用的)和requestSubmit(您需要使用它来让 Rails 远程表单通过 javascript 提交工作)之间的区别

      【讨论】:

        【解决方案3】:

        什么是远程 => 真的?

        如果您在生成过程中在表单中指定 :remote => true,则表示表单是远程提交的。

        那么 form.submit() 呢?

        没有必要使用jQuery代码提交。您的应用了解必须远程提交表单。

        希望对您有所帮助

        【讨论】:

          猜你喜欢
          • 2012-10-07
          • 2014-08-24
          • 2012-02-28
          • 1970-01-01
          • 2012-03-19
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多