我有一些简单的jQuery可以在点击按钮时更改按钮的文本
<button type="submit" id="zipUploadButton" class="btn btn-primary">Upload</button>
$uploadButton.click(function(){
$(this).text('please wait').attr("disabled", "disabled");
});
问题是它似乎阻止默认行为(表单提交,我仍然希望发生)。有没有办法确保保留默认行为,或者采取其他方式来做我上面尝试过的工作?
答案 0 :(得分:1)
禁用表单提交事件中的按钮,而不是单击事件。以下代码假定$form
包含$uploadButton
的父表单。
$form.submit(function(){
$uploadButton.attr('disabled', 'disabled');
});
答案 1 :(得分:1)
您可以使用timeout
删除已禁用的属性以便提交:
对于JQuery 1.6 +:
$('#zipUploadButton').click(function(){
var button = $(this);
button.prop('disabled', true);
setTimeout(function() {
button.prop('disabled', false);
},1000);
$("#form1").submit();
});
否则,如评论中所述,如果禁用该按钮,则无法提交表单:more info
对于JQuery 1.5及以下版本:
要设置disabled属性,您可以使用:
button.attr('disabled','disabled');
要再次启用,请使用.removeAttr()
button.removeAttr('disabled');
<强> Credits 强>
答案 2 :(得分:0)
您必须延迟禁用按钮,直到事件完成。这样的事情可以帮助你。
$uploadButton.click(function(){
var $this = $(this);
$this.text('please wait');
setTimeout(function(){
$this.attr("disabled", "disabled");
}, 10);
});