我必须在用户点击按钮时提交表单,因为我在该按钮上使用了onclick JS函数调用。
在该功能中,我只需使用.submit()
函数提交我想要的表单。
我使用的JS函数,
$('#form_id').submit()
同样在form_tag
我使用了:remote=>true
。 HTML方法已更改为使用:method=> "post"
发布。
Controller也有respond_to
阻止format.js
块。
查看文件包含正确的.js.erb
文件。
但每当我点击按钮时,它都会被处理为HTML。如果我手动点击该表单的提交按钮,它将成功处理为JS。
如何解决问题??
答案 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代码提交。您的应用了解该表单必须远程提交。
我希望有所帮助