Я видел два метода установки атрибута действия формы.Разница между действием = "" и action = "#" в HTML
# 1. Пустой атрибут действия:
action=""
# 2. Атрибут Действие с #
:
action="#"
Каковы различия между ними?
Я видел два метода установки атрибута действия формы.Разница между действием = "" и action = "#" в HTML
# 1. Пустой атрибут действия:
action=""
# 2. Атрибут Действие с #
:
action="#"
Каковы различия между ними?
Первые рассасывается к URL текущей страницы *
(сохраняющих любой идентификатор фрагмента в URL, и вы могли бы также опустить action
атрибут целиком), другой в верхней части страницы (удаление любого идентификатора фрагмента, который существует там уже).
*
Учитывая нормальное разрешение URL, я думаю, было бы решить до последнего /
перед строкой запроса и фрагмента идентификатора в URL текущей страницы, но HTML 5 special cases empty strings here (step 8) (предположительно, для обратной совместимости, поскольку большинство браузеров внедрили его так исторически).
Первый (""
) разрешает базовый URL-адрес, а второй (#
) разрешает URL-адрес документа.
Следующая вполне допустимо:
<form action="" method="post">
<p><input type="submit"/></p>
</form>
Теперь берегись, в соответствии с HTML4 specification, атрибут action
является обязательным, и он должен содержать действительный URI. Но в соответствии с URI RFC, пустой URI еще URI:
URI, ссылка, которая не содержит URI является ссылкой на текущий документ. Другими словами, пустая ссылка URI в документе интерпретируется как ссылка на начало этого документа, а ссылка, содержащая только идентификатор фрагмента, является ссылкой на идентифицированный фрагмент этого документа. Обход такой ссылки не должен приводить к дополнительному поисковому действию. Однако, если ссылка URI встречается в контексте, который всегда предназначен для получения нового запроса, как и в случае элемента FORM HTML, тогда пустая ссылка URI представляет базовый URI текущего документа и должна быть заменена этим URI при преобразовании в запрос.
(экстракт из this page)
Хотя это является обязательным, большинство, если не все браузеры будут отправлять обратно отправителю ответ, если не указано атрибут действия.
И в HTML5 атрибут action
не является обязательным. Из specs:
атрибутов контента действий и formaction, если указано, должен иметь значение, которое является действительным непустой URL потенциально окружен пробелами.
Похожие:
не могли бы вы привести краткий пример? –
@ user3110335: Пример для чего? –
Атрибут action является необязательным с HTML 5, а HTML 5 имеет специальную обработку для пустых значений атрибутов действия, которые срабатывают до разрешения URI. – Quentin
Пожалуйста, вы можете дать краткий пример? –
Пример чего? – Quentin