已禁用按钮
我在我的页面中有一个按钮,我想禁用它。有没有办法做到这一点? 我的代码如下已禁用按钮
<script type="text/javascript">
$(document).ready(function() {
var myButton = $(this, "input[type='button']");
$(myButton).attr("disabled", "true");
});
</script>
<input id="create" class="button" type="button" >
$('#create').attr("disabled", "disabled");
变化
$(myButton).attr("disabled", "true");
到
$("#create").attr("disabled", "disabled");
当你想重新启用
$("#create").removeAttr("disabled");
var $myButton = $("input#create");
$myButton.click(function(e) {
e.preventDefault();
if($(this).hasClass("disabled")) {
// do NOT submit
} else {
// submit
}
});
// somewhere else...
$myButton.addClass("disabled");
并使用一些CSS样式使按钮显示禁用(即, opacity: 0.4
和/或使它灰色或什么的)。
不要使用'something#id '而只是'#id' - 无论如何,一个id必须是唯一的,所以它不太可能在另一个元素上有相同的id。 – ThiefMaster 2012-03-26 12:03:40
@ThiefMaster:我主要使用它的语义,以便读取上面片段的人总是知道它是某个输入元素。 – Harti 2012-03-28 14:58:00
我会使用
$('#create').attr("disabled", true);
不带引号
使用.prop()
设置按钮的disabled属性:
myButton.prop('disabled', true);
注意myButton
已经是一个jQuery对象,所以你再也不需要$()
了。要再次启用该按钮,只需使用myButton.prop('disabled', false);
您的选择器创建myButton
也是错误的。用这个代替:
var myButton = $("input[type='button']");
甚至更好它的ID选择它(更快,如果你有多个按钮,也能在你的页面):
var myButton = $('#create');
所以,为了保持短和简单的,使用以下内容:
$('#create').prop('disabled', true);
除非他使用古老的jQuery版本,使用'.prop()'设置布尔值会好得多。 – ThiefMaster 2012-03-26 12:00:23
请详细说明一下。我不知道'.prop()'方法。是否推荐'attr()'? – xbonez 2012-03-26 16:18:21
使用'.prop()'就像'element'是DOM元素一样设置'element.something'。 '.attr()'就像调用'element.setAttribute(...)'一样。虽然'disabled'两个都可以工作,但它不适用于表单元素的'value'等东西(尽管您仍然想为这些元素使用'.val()')。 – ThiefMaster 2012-03-26 16:23:59