Здесь говорится, что требуется
http://www.w3schools.com/tags/att_form_action.asp
но я вижу, что формы передаются, даже если я не указываю атрибут действия, и форма отправляется на текущую страницу, что именно то, что я хочу.
Здесь говорится, что требуется
http://www.w3schools.com/tags/att_form_action.asp
но я вижу, что формы передаются, даже если я не указываю атрибут действия, и форма отправляется на текущую страницу, что именно то, что я хочу.
Требуется только стандарты. Вы можете делать все, что захотите, на странице и не следовать стандартам. Вещи могут не отображаться или работать правильно, если вы это сделаете, но, скорее всего, они это сделают. Цель состоит в том, чтобы следовать им, и идея состоит в том, что если вы будете следовать им, ваша страница будет всегда работать; вам не о чем беспокоиться.
Да, форма требуется, чтобы иметь атрибут действия в HTML4. Если он не установлен, браузер, скорее всего, будет использовать тот же метод, что и для него. Вы действительно должны установить action=""
, который является вполне допустимым HTML4, следует стандартам и достигает того же точного результата.
В HTML5 вы можете фактически указать действие на самой кнопке отправки. Если его нет, он использует действие формы, и если он не установлен, по умолчанию используется пустая строка (обратите внимание, что вы не можете явно установить действие в пустую строку в HTML5).
Похоже, для спецификации HTML4 это требуется. Я подозреваю, что некоторые браузеры делают то, что вы хотите "упростить". Однако я не рекомендую полагаться на это. Поскольку вы находитесь в режиме undefined, браузер может разумно решить просто ничего не делать, когда форма отправляется без action
.
Вы можете получить нужное поведение во время выполнения спецификации, оставив действие пустым (поскольку оно относительное, пустое означает текущую страницу):
<form action="" ...>
Как упоминалось bazmegakapa, спецификация HTML5 похоже, не требует атрибута action
:
Атрибуты содержимого действия и формы, , если указано, должны иметь значение, которое является допустимым непустым URL, потенциально окруженным пробелами. [выделено мной]
Интересно, что это означает, что в HTML5 <form action="">
недопустим, но неясно, нужна ли форма без действия (отправить на текущую страницу).
Технически это является нарушением спецификации HTML 4, но все браузеры отправят обратно отправителю ответа, если не указано никаких действий. Я бы согласился с этим не умная идея полагаться на него, но он действительно работает.
EDIT: Как мне уже указывалось, этот вопрос помечен как HTML 5: В HTML 5 они перечисляют атрибут действия как более не требуемый: http://www.w3schools.com/html5/att_form_action.asp, который соответствует спецификациям HTML 5.