2010-11-04 4 views
18

Eh bien, j'ai une page asp.net où j'ai un bouton que j'utilise pour exécuter un JavaScript ... mais après que le JavaScript a exécuté la page recharge (postback) comment puis-je éviter cela?bouton sans publication?

<button onclick="printElement('content');">Print</button> 
+0

j'ai essayé de retourner faux de la fonction printElement et qui n'a eu aucun effet .. – Peter

+0

Avez-vous ajouté un retour devant l'appel à printElement? – Paddy

+0

bien placé le retour faux dans la fonction printElement n'a pas semblé changer n'importe quoi mais le plaçant comme vous 2 posté a semblé fonctionner beaucoup! – Peter

Répondre

43

vous devez utiliser return false

<button onclick="printElement('content');return false">Print</button> 
+1

+1 - cela fonctionne parfaitement. Je voulais juste ajouter que mettre le "retour faux"; dans votre fonction javascript ne fonctionnera pas, il doit apparaître après la méthode dans la déclaration onclick. J'espérais que le contraire était vrai et ce n'est pas :( – dyslexicanaboko

+0

après des jours d'essayer de faire fonctionner cela, enfin vous nous le servir sur un plateau d'argent.Merci – vbNewbie

+1

note si vous utilisez 'onclick =" return printElement (' content '); '' alors vous pouvez utiliser la valeur de retour, 'true' ou' false', de la fonction.Vous avez juste besoin de retourner _something_ depuis l'événement onclick lui-même (qui est lui-même enveloppé dans une fonction avant l'exection), ou –

6

Alter vous cliquez sur l'événement comme ci-dessous:

<button onclick="printElement('content');return false;">Print</button> 
4

si vous n'avez pas besoin d'un poste en arrière, vous devez utiliser un bouton HTML.

dans ce cas, vous n'avez pas besoin de remplacer le comportement pour éviter le poste de retour et il est laighter à charger (il n'a pas besoin d'être travaillé par le serveur pour rendre le retour HTML)

+0

c'est exactement ce que je fais? ou au moins essayer de .. – Peter

+0

Le bouton HTML ne peut pas déclencher un message lui-même. Probablement que vous utilisez la version asp.net.

+1

35
Ajouter

type="button" à votre balise <button> comme ceci:

<button type="button" onclick="printElement('content');">Print</button> 

This answer explique le comportement.

+0

+ 1 solution la plus propre –

+2

Incroyable. J'avais la partie "type = button" manquante, et sans elle, "return false;" juste eu aucun effet. Merci pour le conseil ! –

+0

Ceci est la bonne réponse. Je ne comprends pas pourquoi cette autre réponse a eu autant de votes upvotes. – Matthew

3

Vous devez simplement utiliser un bouton d'entrée à la place:

<input type="button" onclick="printElement('content')" value="Print" /> 

cette doest avez besoin d'un formulaire (afin que vous puissiez l'utiliser sans) et vous n'avez pas le problème avec le postback.

Hope this helps

Questions connexes