Добавить отключенный атрибут для ввода элемента с помощью Javascript
У меня есть окно ввода, и я хочу, чтобы он был отключен и в то же время скрывал его, чтобы избежать проблем при переносе моей формы.
До сих пор у меня есть следующий код для скрытия моего ввода:
$(".shownextrow").click(function() {
$(this).closest("tr").next().show().find('.longboxsmall').hide();
});
Это результат, который скрывается в результате:
<input class="longboxsmall" type="text" />
Как я могу добавить отключенный атрибут на вход?
Ответы
Ответ 1
$("input").attr("disabled", true);
от... Я уже не знаю.
В декабре 2013 года, и я действительно не знаю, что вам сказать.
Сначала это всегда было .attr()
, тогда оно всегда .prop()
, поэтому я вернулся сюда, обновил ответ и сделал его более точным.
Затем через год jQuery снова передумал, и я даже не хочу отслеживать это.
Короче говоря, на данный момент это лучший ответ: "вы можете использовать оба... но это зависит".
Вместо этого вы должны прочитать этот ответ: fooobar.com/questions/463/...
И их примечания к выпуску для этого изменения включены здесь:
Для получения/установки значения не следует использовать .attr() и .prop(). Вместо этого используйте метод .val() (хотя использование .attr( "value", "somevalue" ) будет продолжать работать, как это было до 1.6).
Сводка предпочтительного использования
Метод .prop() следует использовать для логических атрибутов/свойств и для свойств, которые не существуют в html (например, window.location). Все другие атрибуты (те, которые вы можете видеть в html) могут и должны по-прежнему обрабатываться с помощью метода .attr().
Или другими словами:
". prop = non-document stuff"
". attr" = материал документа
...
...
Можем ли мы все усвоить здесь урок об устойчивости API...
Ответ 2
Рабочий код из моих источников:
HTML WORLD
<select name="select_from" disabled>...</select>
JS WORLD
var from = jQuery('select[name=select_from]');
//add disabled
from.attr('disabled', 'disabled');
//remove it
from.removeAttr("disabled");
Ответ 3
Если вы используете jQuery, существует несколько способов установить отключенный атрибут.
var $element = $(...);
$element.prop('disabled', true);
$element.attr('disabled', true);
// The following do not require jQuery
$element.get(0).disabled = true;
$element.get(0).setAttribute('disabled', true);
$element[0].disabled = true;
$element[0].setAttribute('disabled', true);
Ответ 4
Вы можете получить элемент DOM и установить отключенное свойство напрямую.
$(".shownextrow").click(function() {
$(this).closest("tr").next().show()
.find('.longboxsmall').hide()[0].disabled = 'disabled';
});
или если их больше одного, вы можете использовать each()
, чтобы установить все из них:
$(".shownextrow").click(function() {
$(this).closest("tr").next().show()
.find('.longboxsmall').each(function() {
this.style.display = 'none';
this.disabled = 'disabled';
});
});
Ответ 5
$(element).prop('disabled', true); //true|disabled will work on all
$(element).attr('disabled', true);
element.disabled = true;
element.setAttribute('disabled', true);
Все вышеперечисленное является совершенно верным решением. Выберите тот, который лучше всего соответствует вашим потребностям.
Ответ 6
Просто используйте метод jQuery attr()
$(this).closest("tr").next().show().find('.longboxsmall').attr('disabled', 'disabled');
Ответ 7
Используйте для этого метод jQuery attr()
:
$("#element_id").attr('disabled', 'disabled');