Добавление атрибута readonly ко всем элементам формы
Я использую jQuery для добавления атрибута readonly ко всем элементам формы, но не могу понять, как это сделать.
Вот что я пытаюсь:
$('#form1').each( function() { $(this).attr('readonly', true); });
У меня есть простая форма, использующая метку/ввод для отображения элементов формы.
Также я использую tipsy (плагин подсказки для подсказок), а также Formalize (Look and Feel Plug-in)
Ответы
Ответ 1
Попробуйте следующее:
$('#form1 input').attr('readonly', 'readonly');
- Возможно, вы захотите включить больше элементов
#form1 input, #form1 textarea, #form1 select
- В jQuery вам обычно не нужно перебирать коллекцию.
attr
будет работать для коллекции такой же, как для одного элемента.
- В вашем случае
#form1
соответствует только элементу <form>
, а each
запускается один раз для этого элемента. Чтобы найти все элементы (ввод или нет), вы можете написать #form1 *
.
Ответ 2
Это даже лучше использовать селектор ввода . Также обратите внимание Только на чтение только для типа ввода текста и пароля и текстового поля. Он не будет работать на элементах выбора, радио, флажках, кнопках. Если вы хотите отображать, но не разрешать им вводить или нажимать. Попробуйте использовать отключенный.
$("#form1 :input").attr("disabled", true);
Примечание: при отключении он будет серым из ввода, select или textarea, но не будет отправлять этот элемент при его отправке. Если вам это нужно, сообщите мне, и я могу вам помочь.
Вот демон http://jsfiddle.net/j5PAn/ p >
Ответ 3
Чтобы получить все элементы формы:
$.each($('form').serializeArray(), function(index, value){
$('[name="' + value.name + '"]').attr('readonly', 'readonly');
});
Ответ 4
<form>
<fieldset disabled>
<input type="text">
<input type="radio">
<input type="checkbox">
</fieldset>
</form>
вероятно, лучший способ сделать это