使用涡轮链接并提交远程真实表单会导致问题,即表单提交了多次。
就像我多次访问页面然后提交要远程提交的表格一样。它提交了多次。此问题是由于Turbolinks引起的,因为Turbolinks README Working with Script Elements的部分建议在安装事件处理程序时避免使用内联脚本:
这是我的表单代码
<%= form_for 'user', :url => otp_path, :html => { :id => "user_login_form1" }, :remote => true, format: :json do |f| %>
<%= f.submit "Submit", id: 'user_login_form1_submit','data-disable-with' => 'Progressing...' %>
<% end %>
在同一视图中,我正在使用jquery提交
$(document).on('click','#user_login_form1_submit',function(ev){
ev.preventDefault();
jQuery('form#user_login_form1').submit();
});
我不想从我的网站中删除涡轮链接,而是如何处理多次提交远程真实表单的问题?
答案 0 :(得分:0)
如果您想添加一些验证而不丢失rails处理程序,请执行以下操作:
$(document).on('ajax:before','#user_login_form1', function(ev) {
let valid = .....
if (!valid) return false;
});
检查文档(我猜您正在使用jquery_ujs):https://guides.rubyonrails.org/working_with_javascript_in_rails.html#stoppable-events
如果您使用rails-ujs,请执行ev.preventDefault()
或stopEverything(ev)
。