2010-11-04 11 views
18

Nun, ich habe eine asp.net Seite, wo ich eine Schaltfläche habe, die ich benutze, um ein JavaScript auszuführen ... aber nachdem das JavaScript die Seite neu geladen hat (Postback) wie kann ich das vermeiden?Button ohne Postback?

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

Ich habe versucht, von der printElement Funktion false zurück und hatte keine Wirkung .. – Peter

+0

haben Sie eine Rückkehr vor dem Aufruf von printElement hinzufügen? – Paddy

+0

gut Platzierung der Rückgabe false in der printElement-Funktion schien nichts zu ändern, aber es wie Sie 2 gepostet schien schien zu arbeiten, vielen Dank! – Peter

Antwort

43

Sie benötigen return false

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

+1 - das funktioniert einfach großartig. Ich wollte nur hinzufügen, dass die "Rückkehr falsch"; in Ihrer JavaScript-Funktion wird nicht funktionieren, es muss nach der Methode in der Onclick-Deklaration angezeigt werden. Ich hatte gehofft, das Gegenteil ist wahr und es ist nicht :( – dyslexicanaboko

+0

nach Tagen zu versuchen, dies zu arbeiten, schließlich servieren Sie es uns auf einem silbernen Tablett. Danke – vbNewbie

+1

Hinweis, wenn Sie 'onclick =" verwenden zurück printElement (' content '); "' Dann kannst du den Rückgabewert 'true' oder' false' aus der Funktion verwenden. Du musst nur _something_ aus dem onclick-Ereignis selbst zurückgeben (das selbst in einer Funktion vor der Ausführung eingepackt ist). oder es standardmäßig auf "true". –

6

Alter klicken Sie Ereignis wie folgt:

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

verwenden, wenn Sie keine Post brauchen, um wieder sollten Sie eine HTML-Schaltfläche verwenden.

in diesem Fall brauchen Sie nicht das Verhalten außer Kraft setzen, die Post zurück zu vermeiden, und es ist laighter zu laden (es muss nicht von dem Server gearbeitet werden, um die HTML rendern zurück)

+0

das ist genau das, was ich tue? oder zumindest versucht zu .. – Peter

+0

HTML-Button kann nicht einen Beitrag zurück selbst. Probabily Sie verwenden die asp.net-Version.

+1

35

wie so type="button" zu Ihrem <button> Tag hinzufügen:

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

This answer das Verhalten erklärt.

+0

+ 1 sauberste Lösung –

+2

Unglaublich. Ich hatte den "type = button" -Teil fehlt, und ohne es, "Return false;" hatte nur keine Wirkung. Danke für den Tipp ! –

+0

Dies ist die richtige Antwort. Ich verstehe nicht, warum diese andere Antwort so viele Upvotes bekommen hat. – Matthew

3

Sie sollten nur einen Eingabeknopf statt:

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

diese doest eine Form NEED (so können Sie es ohne verwenden) und Sie nicht das Problem mit dem Postbacks haben.

hoffe, das hilft

Verwandte Themen