我在may rails应用程序中有更多表单,标有“保存”和“更新”按钮。首次点击此链接后如何使此按钮无效(禁用)?
答案 0 :(得分:19)
您可以将disable_with
选项与form_tag和form_for帮助一起使用
对于form_tag,您可以使用
submit_tag "Complete sale", :disable_with => "Please wait..."
对于form_for,您可以使用
f.submit 'Create', :disable_with => "Creating..."
来源:http://api.rubyonrails.org/classes/ActionView/Helpers/FormTagHelper.html#method-i-form_tag
答案 1 :(得分:2)
使用jquery可以让它变得非常简单
$('form').submit(function(){
$('input[type=submit]', this).attr('disabled', 'disabled');
});
以上查找所有表单,并在单击提交后禁用提交按钮。这是首选方法,因为输入按钮也会触发提交。
答案 2 :(得分:0)
如果你想用javascript做,那么为什么不使用事件委托?
$(document.body).delegate("form.active","click",function(){
this.className = "clicked";
});
这会将click事件委托给页面中的每个表单并使用一个活动类(同样可以通过使用不同的上下文将其限制为容器中的每个表单,即$(“#container”)。委托(... )或省略活动类)并将类从活动更改为单击
$(document.body).delegate("form.clicked","submit",function(e){
e.preventDefault();
});
这会将提交事件委托给页面上的每个表单,并且单击className并停止提交表单。
或者,您可以使用第一个委托函数将submit事件直接绑定到表单本身(因此请使用以下内容替换上述两个函数)。
$(document.body).delegate("form","click",function(){
$(this).submit(function(e){
e.preventDefault();
e.stopPropagation();
})
});
答案 3 :(得分:0)
这太晚了,但有一个我发现它很有用。
有些时候:disable_with
在rails中不起作用。
为此,你要检查你的gemfile中是否添加了jquery-rails
gem。
然后使用'data-disable-with' => "SUBMITTING"
选项。