Rails 3 - AJAX REST 新表单在用户单击时双重提交



我有一个标准表单,用于 AJAX 提交的控制器的新操作。每次用户单击提交按钮或按一次 Enter 时,表单会立即提交两次,从而创建两个相同的对象。

模型上没有验证,并且在某些情况下是合适的。

窗体视图如下所示:

<%= simple_form_for @contact, remote: true do |f| %>
    <table>
      <tr><td class="cell-right-align">First Name</td><td><%= f.text_field :first_name %></td></tr>
      <tr><td class="cell-right-align">Last Name</td><td><%= f.text_field :last_name %></td></tr>
      <tr><td></td><td><%= f.submit "Create Contact" %></td></tr>
  </table>
<% end %>

它的控制器操作:

def create
  respond_to do |format|
    if @contact.save
      format.js { render 'search_result' }
    else
      format.js { render 'new' } 
    end
  end
end

创建操作的日志显示,在同一秒有两个相同的 POST 操作。

如何停止双重开机自检?我尝试将:disable_with => 'Saving...'添加到提交按钮,但没有效果。

这可能是资产管道问题。是否可以在生产模式下运行应用并验证资产是否已预编译。我怀疑用于处理提交的 javascript 是重复的。从而将两个相同的事件绑定到表单提交。

相关内容

  • 没有找到相关文章