У 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" />