20

首先,小提琴

$('#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()无法禁用按钮。

重复启用和禁用元素的正确方法是什么?

4

4 回答 4

26

代替

.removeProp('disabled')

采用

.prop('disabled',false)

小提琴:http: //jsfiddle.net/kqnZz/6/

于 2012-06-06T18:19:45.877 回答
17

首先,http://jsfiddle.net/iambriansreed/KxGVa/

jQuery 文档很棒。removeProp说:

注意:请勿使用此方法删除本机属性,例如选中、禁用或选中。这将完全删除该属性,并且一旦删除,就不能再次将其添加到元素中。用于.prop()将这些属性设置为false

改变:

.removeProp('disabled')

...到...

.prop('disabled', false)

...和...

.prop('disabled', 'disabled')

...到...

.prop('disabled', true)
于 2012-06-06T18:30:13.023 回答
5

试试这个简短的功能是否可以解决您的需求:

$("#enableButtonB").click(function(){
  $("#myButtonB").prop('disabled', function (_, val) { return ! val; });
});

用户Explosion Pills获得该功能的信任 :)

于 2013-09-25T21:19:26.867 回答
2

此行将用作切换禁用功能:

$('#myButtonB').prop('disabled', !$('#myButtonB').prop('disabled'));

如果你在 jquery 函数中使用它,你可以像这样使用它:

$('#enableButtonB').on('click', function() {
     $('#myButtonB').prop('disabled', !$('#myButtonB').prop('disabled'));
});
于 2015-05-18T14:52:32.150 回答