Як я можу додати readonlyпевне <input>? .attr('readonly')не працює.
Як я можу додати readonlyпевне <input>? .attr('readonly')не працює.
Відповіді:
jQuery <1.9
$('#inputId').attr('readonly', true);
jQuery 1.9+
$('#inputId').prop('readonly', true);
Детальніше про різницю між опорою та attr
Використовуйте $ .prop ()
$("#descrip").prop("readonly",true);
$("#descrip").prop("readonly",false);
$.prop(): Prop встановить атрибут readonly в порожній / порожній рядок, тому якщо у вас є будь-який CSS, для якого використовується селектор атрибутів [readonly="readonly"], то вам доведеться змінити це на [readonly](або включити обидва).
Readonly - це атрибут, визначений у html, тому ставитесь до нього як до одного.
Вам потрібно мати щось на зразок readonly = "readonly" в об'єкті, з яким ви працюєте, якщо ви хочете, щоб воно не могло редагуватися. І якщо ви хочете, щоб він знову був редагований, у вас не буде щось на кшталт readonly = '' (це не стандартно, якщо я правильно зрозумів). Вам дійсно потрібно видалити атрибут в цілому.
Таким чином, при використанні jquery додавання та видалення його має сенс.
Встановіть щось лише заново:
$("#someId").attr('readonly', 'readonly');
Видалити лише заново:
$("#someId").removeAttr('readonly');
Це була єдина альтернатива, яка справді працювала для мене. Сподіваюся, це допомагає!
.attr('readonly', 'readonly')повинен зробити трюк. Ви .attr('readonly')повертаєте лише значення, воно не встановлює.
.attrЗначення має бути тільки рядком або числом, а чи не логічного значення, в відповідно до Jquery Docs: api.jquery.com/attr/#attr2 Крім того , HTML «Булеві атрибути» повинні бути тільки порожній рядок або значення атрибута. Я думаю, що рішення - використовувати, .prop()щоб уникнути плутанини.
Я думаю, що "вимкнено" виключає вхід із відправки на пошту
Для ввімкнення лише читання:
$("#descrip").attr("readonly","true");
Для відключення лише заново
$("#descrip").attr("readonly","");
Використовуйте властивість setAttribute. У прикладі зауважте, що якщо вибрано 1, застосуйте атрибут 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 <1.9:
$('#inputId').attr('disabled', true);
Для версії jQuery> = 1.9:
$('#inputId').prop('disabled', true);