2012-03-22 2 views
120

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

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

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

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

ответ

277

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

Установить type="button", чтобы изменить это. type="submit" по умолчанию (как specified by the HTML recommendation).

+5

потерял сон дня напрасно фиксирующий мой код, потому что я не знаю, что это простая спецификации ! – palerdot

+4

Эхо вопроса о palerdot, рад, что я нашел эту заметку после быстрого поиска Google и не убил часов. Очень знаю, большое спасибо. – brooklynsweb

+0

это здорово! –

5

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

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

Это 'e.preventDefault();'. – hlcs

+0

спасибо, прошу пропустить, что 5 лет назад ;-) –

11

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

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

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

или в качестве альтернативы:

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

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

-1

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

onclick="return false;" 

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

это будет препятствовать форме представить поведение на

Смежные вопросы