Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/293.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 jquery/ajax-单击后在任何表单上禁用提交按钮3秒钟_Javascript_Php_Jquery_Ajax_Forms - Fatal编程技术网

Javascript jquery/ajax-单击后在任何表单上禁用提交按钮3秒钟

Javascript jquery/ajax-单击后在任何表单上禁用提交按钮3秒钟,javascript,php,jquery,ajax,forms,Javascript,Php,Jquery,Ajax,Forms,我找了又找,找不到任何能解释我需要什么的东西 我有一个webscript,它有很多表单。在任何表单上单击submit后,无论表单的id、类或操作如何,我都需要禁用submit按钮3秒钟 我找到了以下代码: $('#btn').click(function(){ var btn = $(this); $.post('http://someurl.com',{delay: 3}).complete(function(){ btn.prop('disabled', false);

我找了又找,找不到任何能解释我需要什么的东西

我有一个webscript,它有很多表单。在任何表单上单击submit后,无论表单的id、类或操作如何,我都需要禁用submit按钮3秒钟

我找到了以下代码:

$('#btn').click(function(){
    var btn = $(this);
    $.post('http://someurl.com',{delay: 3}).complete(function(){
btn.prop('disabled', false);
    });
btn.prop('disabled', true);

});
但这要求表单具有btn id,并且似乎要求表单“发布”到某个页面

是否有一种方法可以在所有形式上实现这一点,而不受正在执行的操作的限制?因此,如果它是一个注册表单,它会禁用“加入”按钮3秒钟,如果它是一个评论表单,它同样会在提交评论后禁用提交3秒钟。。。。基本上,无论什么形式或行动,我想禁用提交按钮3秒后点击

这可能吗

我已尝试将“#btn”的所有实例更改为“input”,但这似乎不起作用。我真的不擅长这方面的工作,但在别人的帮助下,我似乎能处理一些事情

我的问题之所以不是其他问题的重复,是因为我明确指出“无论形式的id、类别或行为如何”。关于另一个问题提出的解决办法没有具体解决这一问题。由于各种原因,在拥有成百上千个表单的webscript上添加id、类或类似的东西并非遥不可及(这是一个社交网络脚本)。我标记为正确的解决方案是不需要向html元素添加任何属性的解决方案

试试这个。(伪代码,根据需要修改):

试试这个。(伪代码,根据需要修改):


为什么不绑定一个单独的事件来延迟添加残疾人呢?你仍然可以保留你自己的点击逻辑。只需将下面的代码分配给容器元素,甚至是主体,并给出您想要影响class.mybutton(或其他内容)的所有按钮


如果您希望禁用按钮根据每个调用的“完成”事件进行切换,则必须创建一个带有参数的原型函数,该参数可以分配给每个按钮。但是上面的延迟为3秒。

为什么不绑定一个单独的事件来添加延迟的残疾人?你仍然可以保留你自己的点击逻辑。只需将下面的代码分配给容器元素,甚至是主体,并给出您想要影响class.mybutton(或其他内容)的所有按钮


如果您希望禁用按钮根据每个调用的“完成”事件进行切换,则必须创建一个带有参数的原型函数,该参数可以分配给每个按钮。但是上面的内容有3秒的延迟。

这篇文章重复:我解释了为什么现在不是重复的:)这篇文章重复:我解释了为什么现在不是重复的:)我只想提一下,这会阻止我表单上的任何提交功能,直到我在禁用时添加了
setTimeout
1ms
还有按钮。我想说的是,在禁用按钮时添加了
setTimeout
1ms
之前,这会阻止表单上的任何提交功能。
$('#mybutton').on('click', function() {
    $('[type="submit"]').prop('disabled', true);
    setTimeout(function() {
        $('[type="submit"]').prop('disabled', false);
    }, 3000); // 3 seconds 
});
$('.container').on('click', '.mybutton', function(event) {
  setTimeout(function(){
    $(this).attr("disabled", false);
  }, 3000);
  $(this).attr("disabled", true);
});