我正在努力确保我的rails应用程序的用户无法通过双击多次提交我的formtastic表单。
请参阅下面的代码。
不幸的是,在将onclick参数添加到提交按钮后,表单不再处理。按钮名称简单更改为禁用按钮'正在处理...'(正如提交期间所预期的那样),但此状态是永久性的(没有数据验证和重定向)。
我没有看到如何调试这个 - 有人可以帮忙吗?
= semantic_form_for @case, :html => {:class => "form-stacked"} do |f|
= f.inputs :name => "Case" do
= f.input :summary, :input_html => {:class => 'xxlarge main_case'}
= f.buttons do
= f.commit_button "Create Case", :button_html => {:class => "btn primary", :onclick => "this.disabled=true; this.value='Processing...';"}
答案 0 :(得分:5)
试试:
submit_tag "Create Case", :disable_with => "Processing..."
这将在rails 3及以上版本中使用
更新
使用formtastic,您需要以下
<%= f.action :submit, :button_html => { :label => "create case", :class => "btn primary", :disable_with => 'Processing...' } %>
答案 1 :(得分:0)
如果您不使用rails 3,您实际上希望在表单元素上的“onsubmit”上执行此操作,因为在文本字段等中按Enter键可以触发提交事件。
确保在js代码中“返回true”,以便在禁用按钮后实际提交表单。