9 ответов:
jQuery
$('#inputId').attr('readonly', true);jQuery 1.9+
$('#inputId').prop('readonly', true);подробнее о разница между опорой и attr
использовать $.prop ()
$("#descrip").prop("readonly",true); $("#descrip").prop("readonly",false);
Readonly-это атрибут, определенный в html, поэтому рассматривайте его как один.
вам нужно иметь что-то вроде readonly="readonly" в объекте, с которым вы работаете, если вы хотите, чтобы он не был редактируемым. И если вы хотите, чтобы он снова редактировался, у вас не будет чего-то вроде readonly=" (это не стандартно, если я правильно понял). Вам действительно нужно удалить атрибут в целом.
как таковой, при использовании jquery добавление и удаление его-это то, что делает чувство.
что-то только для чтения:
$("#someId").attr('readonly', 'readonly');удалить только для чтения:
$("#someId").removeAttr('readonly');Это была единственная альтернатива, которая действительно работала для меня. Надеюсь, это поможет!
.attr('readonly', 'readonly')следует сделать трюк. Ваш.attr('readonly')возвращает только значение, он не один.
для включения только для чтения:
$("#descrip").attr("readonly","true");для отключения только для чтения
$("#descrip").attr("readonly","");
используйте свойство setAttribute. Обратите внимание в примере, что если выбрать 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>
для версии jQuery
$('#inputId').attr('disabled', true);для версии jQuery >= 1.9:
$('#inputId').prop('disabled', true);
Comments