在这里有几个线程在SO,但我没有找到一个专门处理我在应用程序中广泛使用的令人敬畏的jQuery Form plugin的线程。jQuery Form插件 - 如何防止双提交?
我希望用户能够点击'submit'一次 - 并禁用'submit'按钮,直到Ajax成功返回JSON字符串。
我试代码是这样的
$('#submit_button').live('click', function(e) {
e.preventDefault();
var options = {
type: 'post',
dataType: 'json',
beforeSubmit: function(){
$('#loading').show().fadeIn();
$('#submit_button').attr('disabled', 'disabled');
},
success: function(data) {
if (data.success === 3) {
$('#submit_button').hide();
$('#loading').hide();
$('#validation_message').html(data.message).fadeIn();
$('#submit_button').attr('enabled', 'enabled');
}
}
}
$(this).closest('form').ajaxSubmit(options);
});
但这个堆放“已启用”,并在<button>
“已禁用”属性。
<button class="button" id="submit_button" disabled="disabled" enabled="enabled"> Post </button>
对于如何使这项工作有什么建议吗?