У меня есть некоторые отключенные входы в форме, и я хочу отправить их на сервер, но Chrome исключает их из запроса.
Есть ли обходной путь для этого без добавления скрытого поля?
<form action="/Media/Add">
<input type="hidden" name="Id" value="123" />
<!-- this does not appear in request -->
<input type="textbox" name="Percentage" value="100" disabled="disabled" />
</form>
Ответы:
Элементы с
disabled
атрибутом не отправляются, или вы можете сказать, что их значения не публикуются (см. Второй пункт в разделе Шаг 3 в спецификации HTML 5 для создания набора данных формы ).То есть,
К вашему сведению, в соответствии с 17.12.1 в спецификации HTML 4:
Вы можете использовать
readonly
атрибут в вашем случае, сделав это, вы сможете опубликовать данные вашего поля.То есть,
К вашему сведению, в соответствии с 17.12.2 в спецификации HTML 4:
источник
Используя Jquery и отправляя данные с помощью ajax, вы можете решить вашу проблему:
источник
cursor:not-allowed;
Чтобы опубликовать значения из отключенных входов в дополнение к включенным входам, вы можете просто повторно включить все входные данные формы по мере ее отправки.
Если вы предпочитаете JQuery:
Для ASP.NET MVC C # Razor вы добавляете обработчик отправки следующим образом:
источник
Если вам абсолютно необходимо отключить поле и передавать данные, вы можете использовать JavaScript для ввода этих данных в скрытое поле (или просто установить скрытое поле тоже). Это позволит вам отключить его, но при этом публиковать данные, даже если вы будете публиковать их на другой странице.
источник
Я обновляю этот ответ, так как он очень полезен. Просто добавьте readonly к входу.
Таким образом, форма будет:
источник
Семантически это похоже на правильное поведение
Я хотел бы спросить себя: « Почему мне нужно представить это значение? "
Если у вас отключен ввод данных в форме, то, вероятно, вы не хотите, чтобы пользователь изменял значение напрямую
Любое значение, отображаемое в отключенном входе, должно быть
Предполагая, что сервер, обрабатывающий форму, совпадает с сервером, обслуживающим ее, вся информация для воспроизведения значений отключенных входных данных должна быть доступна при обработке
Фактически, чтобы сохранить целостность данных - даже если значение отключенного ввода было отправлено на сервер обработки, вам действительно нужно его проверить. Эта проверка потребует того же уровня информации, что и в любом случае для воспроизведения значений!
Я бы почти утверждал, что входные данные только для чтения не должны отправляться в запросе
Рад, что меня исправили, но все варианты использования, в которых я могу представить вводные данные только для чтения / отключенные, на самом деле являются скрытыми проблемами стиля
источник
Я считаю, что это работает проще. только для ввода в поле ввода, а затем стиль, чтобы конечный пользователь знал, что это только для чтения. размещенные здесь данные (например, из AJAX) можно отправлять без дополнительного кода.
источник
Вы можете полностью избежать отключения, это болезненно, поскольку формат HTML не отправляет ничего, связанного с
<p>
какой-либо другой меткой.Таким образом, вы можете вместо этого поставить регулярный
Добавь это
readonly="readonly"
Он не отключит ваш текст, но не изменится пользователем, поэтому он будет работать как
<p>
и будет отправлять значение через форму. Просто удалите границу, если хотите сделать<p>
тег больше похожим на тегисточник