У меня есть форма с 2 кнопками
<a href="index.html"><button>Cancel changes</button></a>
<button type="submit">Submit</button>
Я тоже использую на них кнопку jQuery UI, просто так
$('button').button();
Тем не менее, первая кнопка также отправляет форму. Я бы подумал, что если бы не было type="submit"
, это не будет.
Очевидно, я мог бы сделать это
$('button[type!=submit]').click(function(event) { event.stopPropagation(); });
Но есть ли способ, которым я могу остановить эту кнопку назад от отправки формы без вмешательства JavaScript?
Если честно, я использовал только кнопку, чтобы придать ей стиль с помощью jQuery UI. Я попытался позвонить button()
по ссылке, и она не сработала, как ожидалось (выглядела довольно некрасиво!).
<button type="button">
для того, кто не отправляет форму, и<input type="submit">
для другого. Тогда лови это с помощью jquery$('#formID').submit(function(e){});
Ответы:
Значением по умолчанию для
type
атрибутаbutton
элементов является «submit». Установите его, чтобыtype="button"
создать кнопку, которая не отправляет форму.В словах стандарта HTML : «Ничего не делает».
источник
button
Элемент имеет тип по умолчаниюsubmit
.Вы можете заставить его ничего не делать, установив тип
button
:источник
Просто используйте старый добрый HTML:
Оберните это как предмет ссылки, если вы этого хотите:
Или, если вы решите, что хотите, чтобы javascript предоставлял некоторые другие функции:
источник
<input type="button" />
Button
это контейнер в HTML. Это позволяет вам размещать такие вещи, как изображения или таблицы (не знаю, зачем вы это делаете, но вы можете) и т. Д., Покаinput
это не поддерживается. Между ними есть разница, и у каждого есть свой вариант использования.источник
Честно говоря, мне нравятся другие ответы. Легко и не нужно входить в JS. Но я заметил, что вы спрашивали о jQuery. Таким образом, для полноты, в jQuery, если вы вернете false с помощью обработчика .click (), это отменит действие виджета по умолчанию.
Смотрите здесь для примера (и другие вкусности тоже). Вот и документация тоже .
вкратце, с вашим примером кода сделайте это:
В качестве дополнительного преимущества вы можете избавиться от тега привязки и просто использовать кнопку.
источник
e.preventDefault()
ничего не делает, чтобы остановить отправку (с чего начинаетсяfunction(e)
).Без установки
type
атрибута вы также можете вернутьсяfalse
из своегоOnClick
обработчика и объявитьonclick
атрибут какonclick="return onBtnClick(event)"
.источник
Да, вы можете заставить кнопку не отправлять форму, добавив атрибут типа кнопки value:
<button type="button"><button>
источник
источник