使用jquery提交表单不会将其作为远程提交:true rails 4.2

时间:2016-08-03 14:36:28

标签: jquery ruby-on-rails

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

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

我使用的JS函数,

$('#form_id').submit()

同样在form_tag我使用了:remote=>true。 HTML方法已更改为使用:method=> "post"发布。

Controller也有respond_to阻止format.js块。

查看文件包含正确的.js.erb文件。

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

如何解决问题??

3 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

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

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

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

答案 2 :(得分:-2)

什么是remote =>真吗

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

那么form.submit()呢?

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

我希望有所帮助