我使用jquery $.post提交表单时。我想禁用按钮,如5秒后,它已被点击,以避免多次提交的形式。
这是我目前所做:
$('#btn').click(function(){
$.post(base_url + 'folder/controller/function',$('#formID').serialize(),function(data){
$('#message').slideDown().html('<span>'+data+'</span>');
});
});
字符串
我以前用过淡入淡出,但是当我快速点击按钮的时候,它仍然不起作用。我应该怎么做才能达到我想要的效果?
7条答案
按热度按时间ar5n3qh51#
你可以像这样做你想做的事情:
字符串
或者你可以使用jQuery的
.complete()
方法,该方法在aQuery收到响应后执行:型
edit:this is an example,服务器端响应延迟3秒
编辑
因为即使答案是8岁,但仍然得到关注,jQuery越来越不受欢迎,我认为值得添加示例没有jQuery
的字符串
ddhy6vgd2#
只要把这个放在你的JS中提交按钮所在的页面上
字符串
Code source
bakd9h0s3#
在@Teneff的扩展中,如果表单中有多个提交按钮,并且您希望服务器端的按钮名称。
字符串
unftdfkk4#
看看.success函数here,这就是你需要的。
所以您要做是在单击时禁用按钮
字符串
这种方式更好,如果您的请求需要超过5秒才能返回,会发生什么?
twh00eeo5#
取任意形式的button,将其值累加到一个变量中,将值替换为“请等待......”,5秒后将之前保存的变量传递回去,禁用为false。
字符串
iyfjxgzm6#
简单解决方案:
DOM查询:
字符串
将temporarilyDisableBtn()添加到事件队列:
型
禁用和重新启用btn的代码:
型
这是一个通用的解决方案,适用于大多数实现。更多关于setTimeout()的内容。
i7uq4tfw7#
字符串
//或者
型