Ответ 1
В эти дни с jQuery 1.6.1 или выше рекомендуется использовать .prop() при настройке логических атрибутов/свойств.
$("#fieldName").prop("readonly", true);
У меня есть следующий ввод:
<input id="fieldName" name="fieldName" type="text" class="text_box" value="Firstname"/>
Как я могу использовать jQuery, чтобы сделать этот элемент доступным только для чтения, без изменения элемента или его значения?
В эти дни с jQuery 1.6.1 или выше рекомендуется использовать .prop() при настройке логических атрибутов/свойств.
$("#fieldName").prop("readonly", true);
просто добавьте следующий атрибут
// 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 ('readonly', true);
$ ('# fieldName'). prop ('readonly', false);
--- Лучше использовать опору вместо attr.
Используйте этот пример, чтобы создать текстовое поле ReadOnly или Not.
<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 disabled="disabled" id="fieldName" name="fieldName" type="text" class="text_box" />
Или просто используйте тег метки:;)
<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);
может использоваться как опция переключения.
В JQuery 1.12.1 мое приложение использует код:
$('"#raisepay_id"')[0].readOnly=true;
$('"#raisepay_id"')[0].readOnly=false;
и он работает.
Функция setReadOnly (состояние) очень полезна для форм, мы можем установить любое поле в setReadOnly (состояние) напрямую или из разных условий. Но я предпочитаю использовать readOnly для установки непрозрачности для селектора, иначе attr = 'disabled' также работал точно так же.
read Только примеры:
$('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(), когда это возможно.