Ответ 1
Вы должны использовать флаг readOnly
, а не disabled
. Поля, доступные только для чтения, не могут быть отредактированы пользователем, но все еще представлены с формой.
<input type="text" value="blah" readonly="true"/>
Стандарт HTML для форм, по-видимому, таков, что заблокированные элементы ввода не вносят вклад в сборку имени/значения формы.
Есть ли способ обойти это? Мне нужно включить и выключить отключить, но все равно вернуть значение, которое будет передано в форме.
Я понимаю, что я могу использовать JavaScript для копирования значения в скрытый ввод до отправки формы, но я бы предпочел не делать этого. Есть ли более чистый способ?
Я использую ASP.NET, а не то, что имеет значение.
Вы должны использовать флаг readOnly
, а не disabled
. Поля, доступные только для чтения, не могут быть отредактированы пользователем, но все еще представлены с формой.
<input type="text" value="blah" readonly="true"/>
Стандарт HTML для форм, по-видимому, таков, что заблокированные элементы ввода не вносят вклад в сборку имени/значения формы.
Это правильно.
HACK: вы можете использовать Javascript для отправки:
Если вы сделаете значение readonly, вместо его отключения имя/значение поля будет отправлено вместе с остальными неинвалированными полями.
Сделать обработчик события фокуса для чтения только для чтения, чтобы перейти к следующему полю, подходящему для этого, чтобы он больше походил на отключенный элемент. Некоторые браузеры позволяют вам сфокусироваться и выбирать поля только для чтения, а некоторые даже позволяют вставлять в поле readonly, хотя они возвращаются к исходному значению onblur и onchange.
<input type="text" value="" readonly="readonly">
В качестве немного более надежного варианта взлома Wayne (который может запутаться нажатием кнопки "Назад" ) при отключении элемента управления: установите readonly= true
и className= 'disabled'
вместо disabled= true
, затем выберите стиль .disabled
, чтобы посмотреть подобно отключенному полю.
Я взломал быстрый (только JQuery) плагин, который сохраняет значение в поле данных, когда вход отключен. Это просто означает, что пока поле автоматически отключается через jquery с использованием .prop() или .attr()... тогда доступ к значению с помощью .val(),.serialize() или .serializeArra() всегда будет возвращать значение, даже если оно отключено:)
Вместо того, чтобы устанавливать поле как отключенное, установите атрибут readonly в "readonly", как показано ниже. = только для чтения только для чтения
это отправит ваше значение поля в форме submit.
Простой только два шага
проверьте, не заблокирован ли вход, который вы хотите получить, если он удаляет атрибут "отключен"
Получите значение, а затем снова добавьте отключенный атрибут.
Я предполагаю, что это взломать, но, похоже, хорошо работает для меня. Сделайте оба! Пользователь видит отключенный вход, четко очерчен и браузер предотвращает взаимодействие - но он не отправляется с формой. Пользователь не видит потенциально дезориентирующего поля readonly, но он отправляется с формой.
<input name="mode_d" size="8" value="mode" disabled>
<input name="mode" value="mode" hidden readonly>
Можете ли вы использовать Visible=false
и/или ReadOnly=true
вместо Enabled=false
?
Если вы используете элемент управления, вы действительно не должны устанавливать Enabled=false
?