У меня есть форма. Вне той формы у меня есть кнопка. Простая кнопка, как это:
<button>My Button</button>
Тем не менее, когда я нажимаю его, это отправляет форму. Вот код:
<form id="myform">
<input />
</form>
<button>My Button</button>
Вся эта кнопка должна сделать, некоторый JavaScript. Но даже когда это смотрит точно так же, как в коде выше, это отправляет форму. Когда я изменяю кнопку тега для охвата, она работает отлично. Но к сожалению, это должна быть кнопка. Там какой-либо путь состоит в том, чтобы заблокировать ту кнопку от представления формы? Как, например.
<button onclick="document.getElementById('myform').doNotSubmit();">My Button</button>
Я думаю, что это самая неприятная небольшая особенность HTML ... Эта кнопка должна иметь тип "button", чтобы ее нельзя было отправить.
<button type="button">My Button</button>
Обновление от 5 февраля 2019 г .: Согласно HTML Living Standard (а также спецификация HTML 5 ):
отсутствует значение по умолчанию и недопустимое значение по умолчанию - это состояние кнопки «Отправить» .
return false;
в конце обработчика onclick выполнит задание. Однако лучше просто добавить type = "button"
в
- так он будет вести себя правильно даже без какого-либо JavaScript.
Не рекомендуется использовать тег
. Вместо этого используйте тег
. (Использование «return false» действительно не должно отправлять форму.)
Некоторые справочные материалы
Дэйв Маркл прав. С веб-сайта W3School :
Всегда указывайте атрибут типа для кнопки .Типом по умолчанию для Internet Explorer является "кнопка", а для в других браузерах (и в спецификации W3C ) это "отправить".
Другими словами, используемый вами браузер соответствует спецификации W3C.