Добавление атрибута readonly ко всем элементам формы - PullRequest
29 голосов
/ 26 октября 2010

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

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

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

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

Ответы [ 4 ]

69 голосов
/ 26 октября 2010

Попробуйте это:

$('#form1 input').attr('readonly', 'readonly');
  • Возможно, вы захотите включить больше элементов #form1 input, #form1 textarea, #form1 select
  • В jQuery вам обычно не нужно перебирать коллекцию. attr будет работать для коллекции так же, как для отдельного элемента.
  • В вашем случае #form1 соответствует только элементу <form>, и each был запущен один раз для этого элемента. Чтобы найти все элементы (входные или нет), вы можете написать #form1 *.
39 голосов
/ 26 октября 2010

Еще лучше использовать селектор входа . Также обратите внимание, что Только чтение доступно только для ввода типа текста и пароля и текстовой области. Он не будет работать с выбранными элементами, радио, флажками, кнопками. Если вы хотите отобразить, но не разрешить им печатать или нажимать. Попробуйте использовать отключено.

$("#form1 :input").attr("disabled", true);

Примечание: при использовании отключено оно будет серым цветом ввода, выбора или текста, но не будет публиковать этот элемент при отправке Если вам нужно опубликовать сообщение, дайте мне знать, и я могу вам помочь.

Вот демоверсия http://jsfiddle.net/j5PAn/

4 голосов
/ 18 декабря 2013

Чтобы получить все элементы формы:

$.each($('form').serializeArray(), function(index, value){
    $('[name="' + value.name + '"]').attr('readonly', 'readonly');
});
1 голос
/ 20 марта 2017
<form>
    <fieldset disabled>
        <input type="text">
        <input type="radio">
        <input type="checkbox">
    </fieldset>
</form>

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...