У jQuery есть функция разрешения, но не функция отключения. Зачем?

До сих пор я использовал следующие, чтобы отключить/включить поля формы -

$('#fieldid').attr('disable','disable');
$('#fieldid').removeAttr('disable');

И это выполнило свою работу. Но вчера я рассеянно набрал следующее, чтобы включить поле -

$('#fieldid').enable();

И это сработало! Я молча пинал себя за то, что не пытался использовать удобные функции "включить" / "отключить", встроенные в jQuery (или так я думал), и приступил к изменению строки для отключения -

$('#fieldid').disable();

И к моему удивлению, это НЕ работало.

Я что-то упустил? Почему функция enable() определена, а функция disable() - нет? И даже более странно, я не мог найти упоминания об активации() или disable() в документах jquery. У кого-нибудь есть объяснения?

Я использую jQuery 1.6.

Ответ 1

jQuery не поддерживает метод enable() из коробки (а атрибут disable HTML тоже не существует, но это может быть только опечатка в вашем вопросе).

Может быть, вы используете плагин, который предоставляет эту функцию? В этом случае попробуйте передать false методу enable() для отключения поля:

$('#fieldid').enable(false);

Ответ 2

Похоже, он доступен через отключить плагин. Что касается того, почему он не включается из коробки, я могу только предположить, что это было исключено, поскольку функциональность уже была покрыта .attr()

Ответ 3

Я прочитал код jquery и документацию, но не смог найти никаких признаков функции am enable, уверены, что поле еще не включено?

Я создал jsfiddle для проверки:

http://jsfiddle.net/Zy3tW/1/

$(document).ready(function(){
    $("#textinput").enable();
});

<input id="textinput" type="text" disabled="disabled" />