Отключить автоматическую отправку формы при нажатии кнопки

У меня есть HTML-форма, где я использую несколько кнопок. Проблема в том, что независимо от того, какую кнопку я нажимаю, форма будет отправлена, даже если кнопка не относится к типу "отправить". например Кнопки типа: <button>Click to do something</button>, приводят к отправке формы.

Очень сложно сделать e.preventDefault() для каждой из этих кнопок.

Я использую jQuery и jQuery UI, а веб-сайт - в HTML5.

Есть ли способ отключить это автоматическое поведение?

Ответ 1

Кнопки отправки, например <button>Click to do something</button> ,.

Установите type="button", чтобы изменить это. type="submit" по умолчанию (как указанный в рекомендации HTML).

Ответ 2

Нетрудно сделать то, что вы хотите. Вы можете просто попробовать использовать return false (вернуть false переопределяет поведение по умолчанию для каждого элемента DOM):

myform.onsubmit=function()
{ 
  //do what you want;
  return false;
}

а затем отправьте форму с помощью myform.submit()

или, альтернативно:

mybutton.onclick=function () 
{
   //do what you want;
   return false;
}

Однако я думаю, что Input type="button"/Button type = "button" не отправит вашу форму, и вы можете использовать их без каких-либо проблем.

Ответ 3

<button> на самом деле представляют кнопки, у них нет других основных функций. Вам нужно будет установить тип на кнопку.
Но если вы привязываете обработчик событий, как показано ниже, вы нацеливаете все кнопки и не должны делать это вручную для каждой кнопки!

$('form button').on("click",function(e){
    e.preventDefault();
});

Ответ 4

если вы хотите добавить непосредственно к вводу в качестве атрибута, используйте этот

 onclick="return false;" 

<input id = "btnPlay" type="button" onclick="return false;" value="play" /> 

это предотвратит поведение представления формы