Как добавить атрибут "readonly" к <input>?

Как я могу добавить readonly к определенному <input>? .attr('readonly') не работает.

Ответ 2

Используйте $. prop()

$("#descrip").prop("readonly",true);

$("#descrip").prop("readonly",false);

Ответ 3

Readonly - это атрибут, определенный в html, поэтому относитесь к нему как к одному.

У вас должно быть что-то вроде readonly = "readonly" в объекте, с которым вы работаете, если вы хотите, чтобы он не редактировался. И если вы хотите, чтобы он снова редактировался, у вас не будет чего-то типа readonly = '' (это не стандартно, если я правильно понял). Вам действительно нужно удалить атрибут в целом.

Таким образом, при использовании jquery, добавляя его и удаляя, это имеет смысл.

Установите что-то только для чтения:

$("#someId").attr('readonly', 'readonly');

Удалить только для чтения:

$("#someId").removeAttr('readonly');

Это была единственная альтернатива, которая действительно работала для меня. Надеюсь, это поможет!

Ответ 4

.attr('readonly', 'readonly') должен сделать трюк. Ваш .attr('readonly') возвращает только значение, оно не устанавливается.

Ответ 5

Я думаю, что "отключено" исключает ввод, отправленный на POST

Ответ 6

Вы можете отключить чтение только с помощью .removeAttr;

$('#descrip').removeAttr('readonly');

Ответ 7

Для включения readonly:

$("#descrip").attr("readonly","true");

Для отключения readonly

$("#descrip").attr("readonly","");

Ответ 8

Используйте свойство setAttribute. Обратите внимание, что если select 1 применит атрибут readonly в текстовом поле, в противном случае удалите атрибут readonly.

http://jsfiddle.net/baqxz7ym/2/

document.getElementById("box1").onchange = function(){
  if(document.getElementById("box1").value == 1) {
    document.getElementById("codigo").setAttribute("readonly", true);
  } else {
    document.getElementById("codigo").removeAttribute("readonly");
  }
};

<input type="text" name="codigo" id="codigo"/>

<select id="box1">
<option value="0" >0</option>
<option value="1" >1</option>
<option value="2" >2</option>
</select>

Ответ 9

Для версии jQuery < 1,9:

$('#inputId').attr('disabled', true);

Для версии jQuery >= 1.9:

$('#inputId').prop('disabled', true);