Действительно ли это - хорошая практика для использования пустого URL для атрибута действия HTML-формы? (действие = “”)

Одно серьезное основание, о котором я могу думать, для обслуживания кода: у Вас есть единственная точка выхода. Если Вы хотите изменить формат результата..., просто намного более просто реализовать. Кроме того, для отладки можно просто засунуть точку останова там:)

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

271
задан Community 23 May 2017 в 02:03
поделиться

4 ответа

Лучшее, что вы можете сделать, - это полностью исключить атрибут действия. Если вы не укажете его, форма будет отправлена ​​по адресу документа, то есть на той же странице.

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

8. Пусть действие будет действием элемента отправителя.

9. Если действием является пустая строка, пусть действием будет адрес документа .

Примечание: этот шаг является преднамеренным нарушением RFC 3986, что потребует здесь обработки базового URL. Это нарушение мотивировано стремлением к совместимости с устаревшим контентом. [RFC3986]

Это определенно работает во всех текущих браузерах, но может не работать должным образом в некоторых старых браузерах ( " браузеры делают странные вещи с пустым атрибутом action =" " "), поэтому спецификация настоятельно не рекомендует авторам оставлять его пустым :

Атрибуты содержимого action и formaction , если они указаны, должен иметь значение, которое является действительным непустым URL-адресом, потенциально окруженным пробелами .

263
ответ дан 23 November 2019 в 02:16
поделиться

Обычно я использую action = "", который является допустимым XHTML и сохраняет данные GET в URL-адресе.

4
ответ дан 23 November 2019 в 02:16
поделиться

Я думаю, что лучше явно указывать, где отправляется форма. Если вы хотите быть в полной безопасности, введите тот же URL-адрес, что и форма, в атрибуте действия, если вы хотите, чтобы она отправлялась сама себе. Хотя основные браузеры оценивают "" для одной и той же страницы, вы не можете гарантировать, что это будут делать неосновные браузеры.

И, конечно, весь URL, включая данные GET, такие как Джаддлинг, указывает.

4
ответ дан 23 November 2019 в 02:16
поделиться

Я часто делал это, когда работал с классическим ASP. Обычно я использовал его, когда требовалась какая-то проверка на стороне сервера для ввода (до дней AJAX). Главный недостаток, который я вижу, заключается в том, что он не отделяет логику программирования от представления на уровне файлов.

1
ответ дан 23 November 2019 в 02:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: