JQuery 1.6 +
Для изменения свойства disabled
необходимо использовать функцию .prop()
.
$("input").prop('disabled', true);
$("input").prop('disabled', false);
JQuery 1,5 и ниже
Функция .prop()
не существует, но .attr()
выполняет аналогичные функции:
Установить отключенный атрибут.
$("input").attr('disabled','disabled');
Для повторного включения правильным методом является использование .removeAttr()
$("input").removeAttr('disabled');
В любой версии jQuery
Вы всегда можете положиться на реальный объект DOM и, вероятно, немного быстрее, чем другие два варианта, если вы имеете дело только с одним элементом:
// assuming an event handler thus 'this'
this.disabled = true;
Преимущество использования методов .prop()
или .attr()
заключается в том, что вы можете установить свойство для нескольких выбранных элементов.
Примечание: В 1.6 есть метод .removeProp()
, который звучит очень похоже на removeAttr()
, но его НЕ ДОЛЖНО ИСПОЛЬЗОВАТЬ на собственных свойствах как 'disabled'
Выдержка из документации:
Примечание. Не используйте этот метод для удаления собственных свойств, таких как отмеченные, отключенные или выбранные. Это полностью удалит свойство и после удаления не может быть снова добавлено к элементу. Вместо этого используйте .prop (), чтобы установить для этих свойств значение false.
На самом деле, я сомневаюсь, что есть много законных применений этого метода, логические реквизиты выполняются таким образом, что вы должны установить их в false вместо «удаления» их как их «атрибутных» аналогов в 1.5