Как я могу добавить readonly
к определенному <input>
? .attr('readonly')
не работает.
Как добавить атрибут "readonly" к <input>?
Ответ 1
jQuery < 1.9
$('#inputId').attr('readonly', true);
jQuery 1.9 +
$('#inputId').prop('readonly', true);
Подробнее о разница между prop и attr
Ответ 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);