Разница между действием = «» и действием = «#» в HTML

0

Я видел два метода установки атрибута действия формы.

# 1. Пустой атрибут действия:

action=""

# 2. Атрибут Action с # :

action="#"

Каковы различия между ними?

Теги:
forms

2 ответа

6

Первый ("") разрешает базовый URL-адрес, а второй (#) разрешает URL-адрес документа.

Вполне справедливо следующее:

<form action="" method="post">
    <p><input type="submit"/></p>
</form>

Теперь остерегайтесь, согласно спецификации HTML4, атрибут action является обязательным, и он должен содержать допустимый URI. Но согласно URI RFC, пустой URI по-прежнему является URI:

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

(выдержка из этой страницы)


Хотя это является обязательным, большинство, если не все браузеры, отправят обратно отправителю ответа, если не указан атрибут действия.

А в HTML5 атрибут action не является обязательным. Из спецификаций:

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

Связанный:

  • 0
    Можете ли вы привести короткий пример?
  • 0
    @ user3110335: Пример для чего?
Показать ещё 1 комментарий
0

Первый разрешает URL-адрес текущей страницы * (сохраняя идентификатор фрагмента в URL-адресе, и вы также можете полностью опустить атрибут action), а другой - в начало страницы (удаляя уже существующий там идентификатор фрагмента).


* Учитывая нормальное разрешение URL, я думаю, что он будет разрешен к последнему / перед строкой запроса и идентификатором фрагмента в URL-адресе текущей страницы, но здесь в случае особых случаев HTML 5 пустые строки (шаг 8) (предположительно для обратной совместимости, поскольку большинство браузеров реализовали его таким образом исторически).

  • 0
    Можете ли вы привести короткий пример?
  • 0
    Пример чего?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню