J'ai un formulaire, avec 2 boutons
<a href="index.html"><button>Cancel changes</button></a>
<button type="submit">Submit</button>
J'utilise le bouton de jQuery UI sur eux aussi, simplement comme ceci
$('button').button();
Cependant, le premier bouton soumet également le formulaire. J'aurais pensé que s'il n'avait pas le type="submit"
, il ne le ferait pas.
Je pourrais évidemment faire ceci
$('button[type!=submit]').click(function(event) { event.stopPropagation(); });
Mais existe-t-il un moyen d'empêcher ce bouton retour de soumettre le formulaire sans intervention de JavaScript ?
Pour être honnête, j'ai utilisé un bouton uniquement pour pouvoir le styliser avec jQuery UI. J'ai essayé d'appeler button()
sur le lien et cela n'a pas fonctionné comme prévu (c'était plutôt laid !).
La valeur par défaut de l'attribut [type
des éléments button
][1] est "submit" ;. Donnez-lui la valeur type="button"
pour produire un bouton qui ne soumet pas le formulaire.
<button type="button">Submit</button>
Selon les termes de la [norme HTML][1] : "ne fait rien." ;
[1] : https://html.spec.whatwg.org/multipage/form-elements.html#attr-button-type
L'élément button
a un type par défaut de submit
.
Vous pouvez faire en sorte qu'il ne fasse rien en lui attribuant le type button
:
<button type="button">Cancel changes</button>
Utilisez simplement le bon vieux HTML:
<input type="button" value="Submit" />
Enveloppez-le comme sujet d'un lien, si vous le souhaitez:
<a href="http://somewhere.com"><input type="button" value="Submit" /></a>
Ou si vous décidez que vous voulez que le javascript fournisse une autre fonctionnalité:
<input type="button" value="Cancel" onclick="javascript: someFunctionThatCouldIncludeRedirect();"/>