Javascript Rails窗体:单击后-禁用链接
我在五月的rails应用程序中有更多的表单,它们带有标准的“保存”和“更新”按钮。如何在首次单击此链接后使此按钮处于非活动(禁用)状态?使用jquery,您可以使其变得非常简单Javascript Rails窗体:单击后-禁用链接,javascript,ruby-on-rails,forms,Javascript,Ruby On Rails,Forms,我在五月的rails应用程序中有更多的表单,它们带有标准的“保存”和“更新”按钮。如何在首次单击此链接后使此按钮处于非活动(禁用)状态?使用jquery,您可以使其变得非常简单 $('form').submit(function(){ $('input[type=submit]', this).attr('disabled', 'disabled'); }); 以上内容查找所有表单,并在单击“提交”后禁用“提交”按钮。这是首选方法,因为enter按钮也会触发提交 您可以使用带有form_标签的
$('form').submit(function(){
$('input[type=submit]', this).attr('disabled', 'disabled');
});
以上内容查找所有表单,并在单击“提交”后禁用“提交”按钮。这是首选方法,因为enter按钮也会触发提交 您可以使用带有form_标签的
禁用_with
选项和form_for helpers
对于form_标记,您可以使用
submit_tag "Complete sale", :disable_with => "Please wait..."
f.submit 'Create', :disable_with => "Creating..."
对于形式_for,您可以使用
submit_tag "Complete sale", :disable_with => "Please wait..."
f.submit 'Create', :disable_with => "Creating..."
来源:如果您想使用javascript,那么为什么不使用事件委派呢
$(document.body).delegate("form.active","click",function(){
this.className = "clicked";
});
这会将单击事件委托给页面中具有活动类的每个表单(同样,您可以通过使用不同的上下文(例如$(“#container”)。委托(…)或忽略活动类)将该类从活动更改为单击
$(document.body).delegate("form.clicked","submit",function(e){
e.preventDefault();
});
这会将提交事件委托给页面上类名为clicked的每个表单,并停止表单的提交
或者,您可以使用第一个委托函数将提交事件直接绑定到表单本身(因此用以下函数替换上述两个函数)
这已经很晚了,但我的朋友发现它很有用 有时
:禁用_with
在rails中不起作用。
为此,您必须检查gem文件中是否添加了jqueryrails
gem
然后使用
'data-disable-with'=>“SUBMITTING”
选项。这在rails 3和4中是不推荐的数据:{disable_with:“Creating…”
是rails 4中的方法。