153 votes

Comment faire pour qu'un bouton HTML ne recharge pas la page ?

J'ai un bouton ( <input type="submit"> ). Lorsque l'on clique dessus, la page se recharge. Comme j'ai un peu de jQuery hide() qui sont appelées au chargement de la page, ce qui a pour effet de masquer à nouveau ces éléments. Comment puis-je faire en sorte que le bouton ne fasse rien, afin de pouvoir ajouter une action qui se produit lorsque le bouton est cliqué, mais sans recharger la page.

314voto

Jafar Rasooli Points 138

Il n'y a pas besoin de js ou de jquery. Pour arrêter le rechargement de la page, il suffit de spécifier le type de bouton comme 'bouton'. Si vous ne spécifiez pas le type de bouton, le navigateur le définira comme 'reset' ou 'submit', ce qui entraînera le rechargement de la page.

 <button type='button'>submit</button>

5 votes

Ça marche ! C'est une bonne alternative à <input type='button' /> .

6 votes

Cela fonctionne bien, et particulièrement dans le cas de Chrome (pour lequel la réponse acceptée ne fonctionne pas)

3 votes

Fonctionne avec Chrome sur Windows 10. Oui !

87voto

Andrew Hare Points 159332

Utilisez soit le <button> ou utiliser un élément <input type="button"/> .

114 votes

L'élément <button> provoque par défaut un rechargement dans chrome (au moins).

2 votes

Vous pouvez toujours utiliser l'événement onsubmit du formulaire et renvoyer false si vous ne voulez toujours pas renvoyer

0 votes

@AdamC Ce n'est pas vrai. Aucun navigateur ne s'actualise lorsque vous cliquez sur un <bouton>à moins que vous n'ajoutiez explicitement du JavaScript pour le faire.

37voto

user2868288 Points 21

En HTML :

<form onsubmit="return false">
</form>

afin d'éviter le rafraîchissement de tous les "boutons", même avec un onclick assigné.

2 votes

La réponse devrait être correcte. L'utilisation d'un bouton rompt les fonctions submit et require du formulaire.

15voto

Chris Gutierrez Points 3127

Vous pourriez ajouter un gestionnaire de clic sur le bouton avec jQuery et renvoyer false.

$("input[type='submit']").click(function() { return false; });

o

$("form").submit(function() { return false; });

6 votes

Cela ne fonctionne pas. Le fait de renvoyer false dans chrome, au moins dans les dernières versions, provoque toujours un rafraîchissement.

0 votes

C'est la seule réponse qui a réellement fonctionné pour moi. J'ai simplement ajouté return false dans ma fonction et le rafraîchissement s'est arrêté dans Safari et Chrome.

14voto

pestilence669 Points 4009

En HTML :

<input type="submit" onclick="return false">

Avec jQuery, une variante similaire, déjà mentionnée.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X