Rails 4:单击后禁用提交按钮

Alb*_*ert 10 jquery ruby-on-rails ujs ruby-on-rails-4

我有一个form_tag(foo_path(@foo), remote: true, id: 'foo-form'表单和一个提交按钮submit_tag ("Submit", :id => "foo-submit")

我想在点击后禁用提交按钮.显然,我不能使用像是onlick="jQuery(this).prop('disabled', true);"因为它会破坏远程功能.我知道:disable_withsubmit_tag 的data属性,但它似乎对我不起作用.它确实生成了正确的表单代码,但它没有任何效果.我不确定它为什么不起作用,但可能是因为我同时使用原型(遗留原因)和jquery.虽然,我只加载ujsjquery而不是原型.但是,所有其他query_ujs功能都可以很好地工作.

还有其他方法可以禁用提交按钮吗?

ceo*_*com 50

使用

submit_tag "Submit", id: "foo-submit", data: { disable_with: "Please wait..." }
Run Code Online (Sandbox Code Playgroud)

  • 正如我在帖子中写的那样:disable_with数据属性对我不起作用 (4认同)

Ste*_*eve 14

另一种选择submit_tagbutton_tag.将button_tag允许您添加字体真棒微调.

<%= button_tag 'Submit', class: 'btn btn-primary', 
      data: { disable_with: "<i class='fa fa-refresh fa-spin'>
      </i> Submitting Changes..."} %>
Run Code Online (Sandbox Code Playgroud)


Alb*_*ert -2

该问题是由无效的 HTML 代码引起的。请参阅<div> 中断 <form> disable_with现在可以使用

  • 所以本质上你的问题完全是在其他地方,并且你没有提供调试这个问题所需的所有代码。您实际上也没有报告正确的症状:)我希望这对您来说是调试的一个很好的教训 - 始终首先查明您的问题并确保问题出现在您认为的位置。 (24认同)