首先,the fiddle。
$('#enableButtonB').click(function (e) {
if($(e.target).is(':checked'))
{
$('#myButtonB').removeProp('disabled');
alert('Enable Button B');
}
else
{
$('#myButtonB').prop('disabled', true);
alert('Disable Button B');
}
});
我正在尝试使用jQuery的.prop()
和removeProp()
方法根据某些条件启用和禁用按钮。在元素上调用removeProp()
之前,似乎工作正常。之后,对prop()
的任何后续调用都无法禁用按钮。
重复启用和禁用元素的正确方法是什么?
答案 0 :(得分:24)
答案 1 :(得分:17)
首先,http://jsfiddle.net/iambriansreed/KxGVa/
jQuery文档很棒。 removeProp
说:
注意:请勿使用此方法删除已选中,已禁用或已选中的本机属性。这将完全删除属性,一旦删除,就不能再次添加到元素。使用
.prop()
将这些属性设置为false
。
变化:
.removeProp('disabled')
...到...
.prop('disabled', false)
...和...
.prop('disabled', 'disabled')
...到...
.prop('disabled', true)
答案 2 :(得分:4)
尝试这个简短的功能可以满足您的需求:
$("#enableButtonB").click(function(){
$("#myButtonB").prop('disabled', function (_, val) { return ! val; });
});
用户Explosion Pills对该甜蜜功能的信用:)
答案 3 :(得分:1)
此行将用作切换禁用功能:
$('#myButtonB').prop('disabled', !$('#myButtonB').prop('disabled'));
如果你在jquery函数中使用它,你可以使用它:
$('#enableButtonB').on('click', function() {
$('#myButtonB').prop('disabled', !$('#myButtonB').prop('disabled'));
});