Подтвердить что ты не робот

Добавление атрибута readonly ко всем элементам формы

Я использую jQuery для добавления атрибута readonly ко всем элементам формы, но не могу понять, как это сделать.

Вот что я пытаюсь:

$('#form1').each( function() { $(this).attr('readonly', true); });

У меня есть простая форма, использующая метку/ввод для отображения элементов формы. Также я использую tipsy (плагин подсказки для подсказок), а также Formalize (Look and Feel Plug-in)

4b9b3361

Ответ 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>

вероятно, лучший способ сделать это