Подтвердить что ты не робот

Переключить отключенное свойство с помощью jQuery prop() не работает

Сначала скрипка.

$('#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() не могут быть отключены для кнопки.

Каким образом можно включать и отключать элемент повторно?

4b9b3361

Ответ 2

Сначала http://jsfiddle.net/iambriansreed/KxGVa/

Документы jQuery великолепны. removeProp говорит:

Примечание.. Не используйте этот метод для удаления собственных свойств, таких как отмеченные, отключенные или выбранные. Это полностью удалит свойство и, после удаления, не может быть добавлено снова элементу. Используйте .prop() для установки этих свойств вместо false.

Изменить:

.removeProp('disabled')

... до...

.prop('disabled', false)

... и...

.prop('disabled', 'disabled')

... до...

.prop('disabled', true)

Ответ 3

Попробуйте, если эта короткая функция решит ваши потребности:

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

Кредиты для пользователя Взрывоопасные таблетки для этой сладкой функции:)

Ответ 4

Эта строка будет действовать как отключенная функция:

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

Если вы используете его внутри функции jquery, вы можете использовать его как:

$('#enableButtonB').on('click', function() {
     $('#myButtonB').prop('disabled', !$('#myButtonB').prop('disabled'));
});