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

Неплохо ли использовать скрытые поля?

Один программист сказал мне, что "плохой практикой" использовать скрытые поля в моем HTML-коде. По сути, у меня есть неупорядоченный список, который пользователь выбирает в зависимости от выбранной категории (категории - это картинки). Затем он вызывает javascript, чтобы установить скрытое поле в значение, выбранное пользователем, чтобы я мог отправить его вместе с переданной формой. Это действительно плохая практика, есть ли другой способ, которым я должен это делать?

4b9b3361

Ответ 1

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

Ответ 2

Это очень распространенная практика. Единственная проблема, которую я могу представить в вашем случае, это то, что она сломается, если у вашего посетителя отключен JavaScript, поэтому вам может понадобиться резерв.

Ответ 3

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

Рассмотрим альтернативы:

  • Бесполезно: не пропускайте ничего скрытого.

  • Плохо: Абстракции, такие как ASP.Net viewstate, которые все равно используют скрытое поле, но загрязняют модель запроса (и могут добавлять кучу ненужных данных, если вы не будете осторожны - и большинство людей не являются).

  • BAD: передать все значения формы в строке запроса. Обычно это не RESTful и может быть совершенно вредным (пользователь закладок вызывает запрос, который выполняет неожиданное действие).

  • Возможно: Вручную значения POST с использованием AJAX. Это может быть очень правильной реализацией, предполагая, что вы хотите выполнить операцию async.

  • Возможно: полный обратный ход, где сервер обрабатывает изменение (может быть, единственный способ поддерживать пользователей без JavaScript).

Ответ 4

Как правило, это плохая практика хранения значения javascript в HTML DOM. Вы должны попытаться создать список, хранящийся в вашем javascript environement.

window.myList = new Array();

Я рекомендую вам использовать что-то вроде Underscore.js или даже Backbone.js, когда у вас много вещей.

Если вы используете эти данные только для отправки, ваше дело кажется законным.

Ответ 5

Плохая практика заключается в использовании скрытых полей для информации, которая должна быть безопасной. Когда нет проблемы с безопасностью, в целом хорошо использовать скрытые поля.