2012-06-11 10 views
5

Ich habe eine Webseite, an der ich mit jQuery arbeite. Ich erhalte unregelmäßiges Verhalten von einigen Elementen auf meiner Seite: Jedes Mal, wenn auf eine Schaltfläche, eine Schaltfläche auf der Seite geklickt wird, wird die Seite aktualisiert.Warum lädt eine Schaltfläche meine gesamte Webseite neu?

Die Seite muss irgendwie Code ausführen, der diese Seite jedes Mal neu lädt, wenn auf eine Schaltfläche geklickt wird.

Ich bin völlig ratlos, herauszufinden, wo der Code an den Click-Handler gebunden wird, also würde ich gerne wissen, ob es möglich ist, zur Laufzeit eine Liste von Handlern auf einer Schaltfläche aufzuzählen .

Update: Nachdem die Antworten weiter unten zu lesen, änderte ich eine Zeile in meiner Seite:

<button id="btnSaveAndContinue" class="button" tabindex="290">Save and Continue</button> 

dazu:

<input type='button' id="btnSaveAndContinue" class="button" tabindex="290" value='Save and Continue' /> 
+0

Wenn Sie auf Google Chrome oder Safari, die Developer Tools werden auf jeden Fall mit, dass eine Menge helfen. Verwenden Sie einfach Element prüfen. – Ryan

+3

Das Standardverhalten einer Schaltfläche ist das Senden der Form, in der sie sich befindet. Bist du sicher, dass das nicht passiert? –

+0

Das ist sehr merkwürdig, weil wir in der aktuellen Version des Webprogramms auf dem Produktionsserver dieses Problem nicht haben. Ich habe gerade das Problem bei einer neuen Version des Programms auf meinem Dev-Server bemerkt. –

Antwort

10

Dies ist das Standardverhalten eines Knopfes. Wenn Sie es ändern wollen, tun Sie etwas wie folgt aus:

$("button selector").click(function(event) { 
    event.preventDefault(); 
}); 
+2

Oder noch besser, 'preventDefault'. Die Rückgabe von false stoppt auch die Propagierung, die Sie nicht tun sollten, wenn Sie nicht wirklich wollen. –

+0

Guter Anruf. Aktualisiert, um 'preventDefault' anstelle von' return false' zu ​​verwenden. – robbrit

+0

+1 für 'preventDefault'. Besser noch, wenn Sie die Propagierung stoppen wollen, verwenden Sie 'stopPropagation' – WickyNilliams

0

Sie haben das Standardverhalten für den Fall zu stoppen, mit event.preventDefault() in Ihrem click Handler.

Siehe this

Verwandte Themen