HTML почему кнопки в формах отправляют данные?

onclick и нет jQuery .click() кнопка просто ничего не делать. Идеальный. Но когда я это делаю, а кнопка внутри <form> элемент, он пытается отправить получить данные всех элементов формы на корневой адрес моего сайта? Зачем он это делает? Я не сделал это кнопкой отправки или даже не определил method или action на что форма??

Спасибо за информацию заранее!

* * EDIT**

это то, что я сделал, чтобы исправить проблему. Для кнопок внутри <form> использовать:

<button type="button"></button>

и он ничего не будет делать по умолчанию.

4 ответов


как видно на соответствующем MDN ввода, значение по умолчанию для type свойство элемента button -submit. Поэтому, если вы опустите его или не измените его на button или reset, поведение по умолчанию будет срабатывать, и форма будет отправлена.

<form action="">
  <button type="button">Nothing will happen</button>
  <button>Form gets submitted</button>
</form>

Я не сделал это кнопкой отправки

<button> элементы a


Он был разработан таким образом, потому что вы иногда нужно знать, какая кнопка была нажата на стороне сервера. Если вы хотите функциональность кнопки без кнопки, используйте стилизованный a-тег.


кнопки рассматриваются как элементы управления submit в формах, не знаю почему.

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

Почему раньше это сделать потому, что по умолчанию method.

чтобы предотвратить это, добавьте return false; до конца .