jquery/ajax - 单击任何表单上的"提交"按钮3秒钟

Bru*_*uce 1 javascript php forms ajax jquery

我搜索并搜索过,发现没有什么可以解释我需要什么.

我有一个webcript,到处都有几十种形式.无论表单的id,类或操作是什么,我都需要在任何表单上单击提交后禁用提交按钮3秒钟.

我找到了以下代码:

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

});
Run Code Online (Sandbox Code Playgroud)

但这要求表单的id为btn,并且似乎要求将表单"发布"到某个页面.

有没有办法在所有形式上实现这一点,无论正在执行的行动如何?因此,如果它是一个注册表单,它会禁用"加入"按钮3秒,如果它是一个评论表单,它在提交评论后同样禁用提交3秒,....基本上无论我想要什么形式或行动单击后禁用提交按钮3秒钟.

这甚至可能吗?

我已经尝试将"#btn"的所有实例更改为"输入",但这似乎不起作用.我真的不擅长这些东西,但似乎在别人的帮助下管理绊脚石.

我的问题与其他问题不重复的原因是因为我特别声明"无论表格的内容,类别或行为是什么".在另一个问题上提出的解决方案没有具体解决这个问题.由于各种原因(其社交网络脚本),添加id,类或类似内容并不是具有数百种表单的webscript的远程可能性.我标记为正确的解决方案是不需要将任何属性添加到html元素的解决方案.

Nik*_* M. 5

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

$('#mybutton').on('click', function() {
    $('[type="submit"]').prop('disabled', true);
    setTimeout(function() {
        $('[type="submit"]').prop('disabled', false);
    }, 3000); // 3 seconds 
});
Run Code Online (Sandbox Code Playgroud)