:onclick和formtastic:首次单击后禁用提交按钮会阻止表单处理?

时间:2012-02-13 16:26:25

标签: ruby-on-rails onclick formtastic

我正在努力确保我的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...';"}

2 个答案:

答案 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”,以便在禁用按钮后实际提交表单。