Как переопределить (отключить) поведение "отправить" тега кнопки внутри тега формы?
<form action="">
<button>click</button>
</form>`
Поведение кнопки в форме по умолчанию - это отправить эту форму.
Как отключить поведение отправки этой кнопки?
Ответы
Ответ 1
Добавьте type="button"
к нему:
<button type="button">Click</button>
Доступны следующие типы:
- "submit": значение по умолчанию. Отправляет форму.
- "reset": Сбрасывает входы формы.
- "button": ничего не делает.
Хорошая ссылка: https://developer.mozilla.org/en/DOM/HTMLButtonElement
Ответ 2
Это отключит использование javascript
<button onclick='return false'>click</button>
Но вы можете просто определить тип
<button type='button'>click</button>
Ответ 3
Есть случаи, когда вы хотите сохранить тонкости кнопки submit
(например, на мобильном устройстве, где кнопка submit
может быть запущена с клавиатуры, но только если кнопка является частью формы и типа submit
). В этом случае то, что вам нужно сделать, это предотвратить действие кнопки по умолчанию.
Использование jQuery 1.7+ (используя .on
- Я настоятельно рекомендую прочитать документацию - существует много нюансов использования .on
, которые могут значительно влияют на производительность)
$(document).on("click", "button", "event", function(evt) {
evt.preventDefault();
...
}
Использование старых версий jQuery...
$("#button-id").bind("click", function(evt, ui) {
evt.preventDefault();
...
}
Обратите внимание, что вы можете использовать любой селектор (выберите по классу, типу элемента и т.д.) или метод привязки к событию (вместо .bind
, используйте .live
, .delegate
как соответствующий вашей версии jquery.