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

Как я могу получить значение формы из отключенного элемента <input>

Стандарт HTML для форм, по-видимому, таков, что заблокированные элементы ввода не вносят вклад в сборку имени/значения формы.

Есть ли способ обойти это? Мне нужно включить и выключить отключить, но все равно вернуть значение, которое будет передано в форме.

Я понимаю, что я могу использовать JavaScript для копирования значения в скрытый ввод до отправки формы, но я бы предпочел не делать этого. Есть ли более чистый способ?

Я использую ASP.NET, а не то, что имеет значение.

4b9b3361

Ответ 1

Вы должны использовать флаг readOnly, а не disabled. Поля, доступные только для чтения, не могут быть отредактированы пользователем, но все еще представлены с формой.

<input type="text" value="blah" readonly="true"/>

Ответ 2

Стандарт HTML для форм, по-видимому, таков, что заблокированные элементы ввода не вносят вклад в сборку имени/значения формы.

Это правильно.

HACK: вы можете использовать Javascript для отправки:

  • Unset disabled
  • Установить readonly
  • Submit!

Ответ 3

Если вы сделаете значение readonly, вместо его отключения имя/значение поля будет отправлено вместе с остальными неинвалированными полями.

Сделать обработчик события фокуса для чтения только для чтения, чтобы перейти к следующему полю, подходящему для этого, чтобы он больше походил на отключенный элемент. Некоторые браузеры позволяют вам сфокусироваться и выбирать поля только для чтения, а некоторые даже позволяют вставлять в поле readonly, хотя они возвращаются к исходному значению onblur и onchange.

<input type="text" value="" readonly="readonly">

Ответ 4

В качестве немного более надежного варианта взлома Wayne (который может запутаться нажатием кнопки "Назад" ) при отключении элемента управления: установите readonly= true и className= 'disabled' вместо disabled= true, затем выберите стиль .disabled, чтобы посмотреть подобно отключенному полю.

Ответ 5

Я взломал быстрый (только JQuery) плагин, который сохраняет значение в поле данных, когда вход отключен. Это просто означает, что пока поле автоматически отключается через jquery с использованием .prop() или .attr()... тогда доступ к значению с помощью .val(),.serialize() или .serializeArra() всегда будет возвращать значение, даже если оно отключено:)

https://github.com/Jezternz/jq-disabled-inputs

Ответ 6

Вместо того, чтобы устанавливать поле как отключенное, установите атрибут readonly в "readonly", как показано ниже. = только для чтения только для чтения

это отправит ваше значение поля в форме submit.

Ответ 7

Простой только два шага

  • проверьте, не заблокирован ли вход, который вы хотите получить, если он удаляет атрибут "отключен"

  • Получите значение, а затем снова добавьте отключенный атрибут.

Ответ 8

Я предполагаю, что это взломать, но, похоже, хорошо работает для меня. Сделайте оба! Пользователь видит отключенный вход, четко очерчен и браузер предотвращает взаимодействие - но он не отправляется с формой. Пользователь не видит потенциально дезориентирующего поля readonly, но он отправляется с формой.

<input name="mode_d" size="8" value="mode" disabled>
<input name="mode"            value="mode" hidden readonly>

Ответ 9

Можете ли вы использовать Visible=false и/или ReadOnly=true вместо Enabled=false?

Если вы используете элемент управления, вы действительно не должны устанавливать Enabled=false?