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


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

Это довольно больно делать e.preventDefault() для каждой из этих кнопок.

Я использую jQuery и jQuery UI и сайт находится в HTML5.

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

4 137

4 ответа:

кнопки типа <button>Click to do something</button> are кнопок.

Set type="button" изменить. type="submit" по умолчанию (как указано в рекомендации HTML).

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

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

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

или же :

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

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

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

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

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

 onclick="return false;" 

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

это предотвратит поведение отправки формы