Добавить отключенный атрибут для ввода элемента с помощью 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');