Один программист сказал мне, что "плохой практикой" использовать скрытые поля в моем HTML-коде. По сути, у меня есть неупорядоченный список, который пользователь выбирает в зависимости от выбранной категории (категории - это картинки). Затем он вызывает javascript, чтобы установить скрытое поле в значение, выбранное пользователем, чтобы я мог отправить его вместе с переданной формой. Это действительно плохая практика, есть ли другой способ, которым я должен это делать?
Неплохо ли использовать скрытые поля?
Ответ 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
Плохая практика заключается в использовании скрытых полей для информации, которая должна быть безопасной. Когда нет проблемы с безопасностью, в целом хорошо использовать скрытые поля.