Jet*_*oox 18 forms ajax jquery
我在提交表单时使用的是jquery $ .post.我想在点击按钮5秒钟后禁用该按钮,以避免多次提交表单.
这就是我现在所做的:
$('#btn').click(function(){
$.post(base_url + 'folder/controller/function',$('#formID').serialize(),function(data){
$('#message').slideDown().html('<span>'+data+'</span>');
});
});
Run Code Online (Sandbox Code Playgroud)
我之前使用过fadeIn和fadeOut,但是当我测试它快速点击按钮时它仍然不起作用.我该怎么做才能实现我想要的目标?
Ten*_*eff 41
你可以这样做你想做的事:
var fewSeconds = 5;
$('#btn').click(function(){
// Ajax request
var btn = $(this);
btn.prop('disabled', true);
setTimeout(function(){
btn.prop('disabled', false);
}, fewSeconds*1000);
});
Run Code Online (Sandbox Code Playgroud)
或者您可以使用jQuery的.complete()
方法,该方法在ajax收到响应后执行:
$('#btn').click(function(){
var btn = $(this);
$.post(/*...*/).complete(function(){
btn.prop('disabled', false);
});
btn.prop('disabled', true);
});
Run Code Online (Sandbox Code Playgroud)