Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Rails窗体:单击后-禁用链接_Javascript_Ruby On Rails_Forms - Fatal编程技术网

Javascript Rails窗体:单击后-禁用链接

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_标签的

我在五月的rails应用程序中有更多的表单,它们带有标准的“保存”和“更新”按钮。如何在首次单击此链接后使此按钮处于非活动(禁用)状态?

使用jquery,您可以使其变得非常简单

$('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中的方法。