У меня есть следующие данные:
<input id="fieldName" name="fieldName" type="text" class="text_box" value="Firstname"/>
Как я могу использовать jQuery, чтобы сделать этот элемент входом только для чтения, не изменяя элемент или его значение?
В наши дни с jQuery 1.6.1 или выше рекомендуется использовать .prop () при установке логических атрибутов / свойств.
$("#fieldName").prop("readonly", true);
readonly
это относится не ко всем входам. [Атрибут HTML: только для чтения] (см. Developer.mozilla.org/en-US/docs/Web/HTML/Attributes/readonly ). Я попытался создать объектselect
, который позволял бы отображать параметры, но не мог выбрать другой вариант. Это невозможно сделать с помощьюreadonly
.просто добавьте следующий атрибут
// for disabled i.e. cannot highlight value or change disabled="disabled" // for readonly i.e. can highlight value but not change readonly="readonly"
JQuery , чтобы внести изменения в элемент (заменить
disabled
наreadonly
в следующем для установкиreadonly
атрибута).$('#fieldName').attr("disabled","disabled")
или
$('#fieldName').attr("disabled", true)
ПРИМЕЧАНИЕ. Начиная с jQuery 1.6, рекомендуется использовать
.prop()
вместо.attr()
. Приведенный выше код будет работать точно так же , за исключением замены.attr()
на.prop()
.источник
Чтобы сделать ввод только для чтения, используйте:
$("#fieldName").attr('readonly','readonly');
чтобы использовать его для чтения / записи:
$("#fieldName").removeAttr('readonly');
добавление
disabled
атрибута не отправит значение с сообщением.источник
Вы можете сделать это, просто отметив его
disabled
илиenabled
. Вы можете использовать этот код для этого://for disable $('#fieldName').prop('disabled', true); //for enable $('#fieldName').prop('disabled', false);
или
$ ('# fieldName'). prop ('только для чтения', истина);
$ ('# fieldName'). prop ('только для чтения', ложь);
--- Лучше использовать prop вместо attr.
источник
Есть два атрибута, а именно
readonly
иdisabled
, которые могут вводиться частично только для чтения. Но между ними есть небольшая разница.<input type="text" readonly /> <input type="text" disabled />
readonly
Атрибут делает ваш ввод текста отключен, и пользователи не могут изменить его больше.disabled
Атрибут не только сделает ваш вводимый текст отключенным (неизменным), но и не сможет его отправить .Подход jQuery (1):
$("#inputID").prop("readonly", true); $("#inputID").prop("disabled", true);
Подход jQuery (2):
$("#inputID").attr("readonly","readonly"); $("#inputID").attr("disabled", "disabled");
Подход JavaScript:
document.getElementById("inputID").readOnly = true; document.getElementById("inputID").disabled = true;
PS
prop
представлен сjQuery 1.6
.источник
Используйте этот пример, чтобы сделать текстовое поле только для чтения или нет.
<input type="textbox" class="txt" id="txt"/> <input type="button" class="Btn_readOnly" value="Readonly" /> <input type="button" class="Btn_notreadOnly" value="Not Readonly" /> <script> $(document).ready(function(){ ('.Btn_readOnly').click(function(){ $("#txt").prop("readonly", true); }); ('.Btn_notreadOnly').click(function(){ $("#txt").prop("readonly", false); }); }); </script>
источник
Дано -
<input name="foo" type="text" value="foo" readonly />
это работает - (jquery 1.7.1)
$('input[name="foo"]').prop('readonly', true);
протестировано с readonly и readOnly - оба работали.
источник
Возможно, использовать отключенный атрибут:
<input disabled="disabled" id="fieldName" name="fieldName" type="text" class="text_box" />
Или просто используйте тег label:;)
<label>
источник
<html xmlns="http://www.w3.org/1999/xhtml"> <head > <title></title> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script> </head> <body> <div> <input id="fieldName" name="fieldName" type="text" class="text_box" value="Firstname" /> </div> </body> <script type="text/javascript"> $(function() { $('#fieldName').attr('disabled', 'disabled'); }); </script> </html>
источник
Возможно, имеет смысл добавить, что
$('#fieldName').prop('readonly',false);
можно использовать как переключатель ..
источник
readonly
атрибут к элементу, независимо от переданного значения. Таким образом, в вашем примере поле ввода будет доступно только для чтения, несмотря на то, что якобы установлено значение false.В JQuery 1.12.1 мое приложение использует код:
$('"#raisepay_id"')[0].readOnly=true;
$('"#raisepay_id"')[0].readOnly=false;
и это работает.
источник
SetReadOnly (состояние) очень полезно для форм, мы можем установить любое поле в setReadOnly (состояние) напрямую или из различных условий. Но я предпочитаю использовать readOnly для установки непрозрачности селектора, иначе attr = 'disabled' также работал как так же.
readOnly примеры:
$('input').setReadOnly(true);
или через различные коды, такие как
var same = this.checked; $('input').setReadOnly(same);
здесь мы используем логическое значение состояния для установки и удаления атрибута readonly из ввода в зависимости от щелчка флажка.
источник
В html
$('#raisepay_id').attr("readonly", true) $("#raisepay_id").prop("readonly",true);
в бутстрапе
$('#raisepay_id').attr("disabled", true) $("#raisepay_id").prop("disabled",true);
JQuery - это изменяющаяся библиотека, и иногда они регулярно улучшаются. .attr () используется для получения атрибутов из тегов HTML, и, хотя он полностью функционален, .prop () был добавлен позже, чтобы быть более семантическим, и он лучше работает с атрибутами без значения, такими как 'checked' и 'selected'.
Если вы используете более позднюю версию JQuery, рекомендуется использовать .prop () по возможности.
источник