У меня есть select
поле формы, которое я хочу пометить как «только для чтения», так как пользователь не может изменить значение, но значение все еще передается вместе с формой. Использование disabled
атрибута не позволяет пользователю изменять значение, но не передает значение вместе с формой.
readonly
Атрибут доступен только для input
и textarea
полей, но это в основном то , что я хочу. Есть ли способ заставить это работать?
Я рассматриваю две возможности:
- Вместо того, чтобы отключить
select
, отключите всеoption
s и используйте CSS, чтобы выделить выбор, чтобы он выглядел как отключенный. - Добавьте обработчик событий щелчка к кнопке отправки, чтобы включить все отключенные раскрывающиеся меню перед отправкой формы.
javascript
html
css
forms
html-select
Маркиз Ван
источник
источник
trafalmadorian
workest лучшими. Он отключает все входы, которые не выбраны. Это также будет работать, если выбрано несколько вариантов.$('#toSelect')find(':not(:selected)').prop('disabled',true);
Ответы:
Где
select_name
имя, которое вы обычно даете<select>
.Другой вариант.
Теперь, с этим, я заметил, что в зависимости от того, какой веб-сервер вы используете, вам, возможно, придется
hidden
вводить данные либо до, либо после<select>
.Если моя память мне не изменяет, с IIS вы поставили ее раньше, с Apache - после. Как всегда, тестирование является ключевым.
источник
Отключите поля, а затем включите их перед отправкой формы:
Код JQuery:
источник
Я искал решение для этого, и так как я не нашел решения в этой теме, я сделал свое собственное.
Проще говоря, вы просто размываете поле, когда фокусируетесь на нем, что-то вроде отключения его, но вы фактически отправляете его данные.
источник
Я столкнулся с немного другим сценарием, в котором я только хотел запретить пользователю изменять выбранное значение на основе более раннего окна выбора. В итоге я просто отключил все остальные невыбранные параметры в окне выбора, используя
источник
attr
следует изменить сprop
, будет выглядеть что-то вроде$('#toSelect')find(':not(:selected)').prop('disabled',true);
То же решение, предложенное Tres без использования jQuery
Это может помочь кому-то понять больше, но, очевидно, менее гибко, чем jQuery.
источник
getElementsByTagName('select')
?он не работает с: входным селектором для полей выбора, используйте это:
источник
Я использую следующий код для отключения параметров в выборках
источник
Самый простой способ, который я нашел, - создать крошечную функцию javascript, привязанную к вашей форме:
и вы называете это в вашей форме здесь:
Или вы можете вызвать его в функции, которую вы используете для проверки вашей формы :)
источник
Просто добавьте строку перед отправкой.
источник
Или используйте JavaScript, чтобы изменить имя выбора и отключить его. Таким образом, выбор все еще отправляется, но с использованием имени, которое вы не проверяете.
источник
Я создал быстрый плагин (только для Jquery), который сохраняет значение в поле данных, пока ввод отключен. Это просто означает, что пока поле программно отключено с помощью jquery с использованием .prop () или .attr () ... тогда доступ к значению с помощью .val (), .serialize () или .serializeArra () всегда будет возвращать значение, даже если отключено :)
Бесстыдная вилка: https://github.com/Jezternz/jq-disabled-inputs
источник
Основываясь на решении Jordan, я создал функцию, которая автоматически создает скрытый ввод с тем же именем и тем же значением выбора, который вы хотите сделать недействительным. Первый параметр может быть идентификатором или элементом jquery; второй является логическим необязательным параметром, где «true» отключает, а «false» включает ввод. Если опущен, второй параметр переключает выбор между «включен» и «отключен».
источник
Я нашел работоспособное решение: удалите все элементы, кроме выбранного. Затем вы можете изменить стиль на что-то, что также выглядит отключенным. Используя jQuery:
источник
источник
Другой вариант - использовать атрибут readonly.
Если значение только для чтения, оно все еще отправляется, поле ввода становится серым, и пользователь не может его редактировать.
Редактировать:
Цитируется с http://www.w3.org/TR/html401/interact/forms.html#adef-readonly :
Когда в нем говорится, что элемент может быть успешным, это означает, что его можно отправить, как указано здесь: http://www.w3.org/TR/html401/interact/forms.html#successful-controls
источник