Подтвердить что ты не робот

Действительно ли требуется действие для форм?

Здесь говорится, что требуется

http://www.w3schools.com/tags/att_form_action.asp

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

4b9b3361

Ответ 1

Требуется только стандарты. Вы можете делать все, что захотите, на странице и не следовать стандартам. Вещи могут не отображаться или работать правильно, если вы это сделаете, но, скорее всего, они это сделают. Цель состоит в том, чтобы следовать им, и идея состоит в том, что если вы будете следовать им, ваша страница будет всегда работать; вам не о чем беспокоиться.

Да, форма требуется, чтобы иметь атрибут действия в HTML4. Если он не установлен, браузер, скорее всего, будет использовать тот же метод, что и для него. Вы действительно должны установить action="", который является вполне допустимым HTML4, следует стандартам и достигает того же точного результата.

В HTML5 вы можете фактически указать действие на самой кнопке отправки. Если его нет, он использует действие формы, и если он не установлен, по умолчанию используется пустая строка (обратите внимание, что вы не можете явно установить действие в пустую строку в HTML5).

Ответ 2

Похоже, для спецификации HTML4 это требуется. Я подозреваю, что некоторые браузеры делают то, что вы хотите "упростить". Однако я не рекомендую полагаться на это. Поскольку вы находитесь в режиме undefined, браузер может разумно решить просто ничего не делать, когда форма отправляется без action.

Вы можете получить нужное поведение во время выполнения спецификации, оставив действие пустым (поскольку оно относительное, пустое означает текущую страницу):

<form action="" ...>

Как упоминалось bazmegakapa, спецификация HTML5 похоже, не требует атрибута action:

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

Интересно, что это означает, что в HTML5 <form action=""> недопустим, но неясно, нужна ли форма без действия (отправить на текущую страницу).

Ответ 3

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

EDIT: Как мне уже указывалось, этот вопрос помечен как HTML 5: В HTML 5 они перечисляют атрибут действия как более не требуемый: http://www.w3schools.com/html5/att_form_action.asp, который соответствует спецификациям HTML 5.