Javascript 正确禁用提交按钮
这是我用来禁用按钮的代码Javascript 正确禁用提交按钮,javascript,jquery,html,Javascript,Jquery,Html,这是我用来禁用按钮的代码 $("#btnSubmit").attr('disabled', 'disabled') $("#btnSubmit").disabled = true; 这是我的提交按钮 <input id="btnSubmit" class="grayButtonBlueText" type="submit" value="Submit" /> 尽管该按钮看起来已禁用,但您仍可以单击它。。这是用FF 3.0和IE6
$("#btnSubmit").attr('disabled', 'disabled')
$("#btnSubmit").disabled = true;
这是我的提交按钮
<input id="btnSubmit" class="grayButtonBlueText" type="submit" value="Submit" />
尽管该按钮看起来已禁用,但您仍可以单击它。。这是用FF 3.0和IE6测试的
我在这里做错了什么吗?如果它是一个真正的表单,即没有处理javascript事件,那么它应该可以工作
如果您使用onClick事件处理按钮,您会发现它可能仍然会触发。如果这样做的话,最好在JS中设置一个类似buttonDisabled的变量,并在处理onClick事件时检查该变量
否则尝试
$(yourButton).attr("disabled", "true");
如果在所有这些之后,您仍然一事无成,您可以使用jquery手动“打破”按钮(现在情况越来越严重):
这将停止按钮像按钮一样的行为。如果它是一个真实的表单,即未处理javascript事件,则应能正常工作
如果您使用onClick事件处理按钮,您会发现它可能仍然会触发。如果这样做的话,最好在JS中设置一个类似buttonDisabled的变量,并在处理onClick事件时检查该变量
否则尝试
$(yourButton).attr("disabled", "true");
如果在所有这些之后,您仍然一事无成,您可以使用jquery手动“打破”按钮(现在情况越来越严重):
这将停止按钮的按钮行为。根据表单提交的处理方式,您可能还需要删除任何单击处理程序和/或添加一个中止提交的处理程序
$('#btnSubmit').unbind('click').click( function() { return false; } );
重新启用按钮时,您必须再次添加单击处理程序。根据表单提交的处理方式,您可能还需要删除任何单击处理程序和/或添加一个中止提交的处理程序
$('#btnSubmit').unbind('click').click( function() { return false; } );
当(如果)重新启用按钮时,您必须再次添加单击处理程序。您需要在浏览器中处理后退/后退按钮。 下面的示例 1) 创建form.js:
(function($) {
$.enhanceFormsBehaviour = function() {
$('form').enhanceBehaviour();
}
$.fn.enhanceBehaviour = function() {
return this.each(function() {
var submits = $(this).find(':submit');
submits.click(function() {
var hidden = document.createElement('input');
hidden.type = 'hidden';
hidden.name = this.name;
hidden.value = this.value;
this.parentNode.insertBefore(hidden, this)
});
$(this).submit(function() {
submits.attr("disabled", "disabled");
});
$(window).unload(function() {
submits.removeAttr("disabled");
})
});
}
})(jQuery);
2) 添加到您的HTML:
<script type="text/javascript">
$(document).ready(function(){
$('#contact_frm ).enhanceBehaviour();
});
</script>
<form id="contact_frm" method="post" action="/contact">
<input type="submit" value="Send" name="doSend" />
</form>
$(文档).ready(函数(){
$('#contact_frm).enhanceBehavior();
});
完成:)您需要在浏览器中处理后退/后退按钮。 下面的示例 1) 创建form.js:
(function($) {
$.enhanceFormsBehaviour = function() {
$('form').enhanceBehaviour();
}
$.fn.enhanceBehaviour = function() {
return this.each(function() {
var submits = $(this).find(':submit');
submits.click(function() {
var hidden = document.createElement('input');
hidden.type = 'hidden';
hidden.name = this.name;
hidden.value = this.value;
this.parentNode.insertBefore(hidden, this)
});
$(this).submit(function() {
submits.attr("disabled", "disabled");
});
$(window).unload(function() {
submits.removeAttr("disabled");
})
});
}
})(jQuery);
2) 添加到您的HTML:
<script type="text/javascript">
$(document).ready(function(){
$('#contact_frm ).enhanceBehaviour();
});
</script>
<form id="contact_frm" method="post" action="/contact">
<input type="submit" value="Send" name="doSend" />
</form>
$(文档).ready(函数(){
$('#contact_frm).enhanceBehavior();
});
完成:)