Отключить форму auto submit on нажмите кнопку

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

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

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

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

4 ответов


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

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


это не трудно сделать то, что вы хотите. Вы можете просто попробовать использовать возвращает 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" / Button type=" button " не отправит вашу форму, и вы можете использовать их без каких-либо проблем.


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

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

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

 onclick="return false;" 

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

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