Ich möchte nur eine Überprüfung der Clientseite (JQuery Javascript) in einem Webbenutzer-Steuerelement hinzufügen. Ich legte einen OnClientClick-Handler und die Funktion wird aufgerufen. ABER, selbst wenn ich "false" zurückgebe, wird die OnClick-Methode immer ausgelöst. Was mache ich falsch?
Ich bin bei VS 2010 und habe das 4.0-Framework mit JQuery 1.4.2 ins Visier genommen. und JQuery UI 1.8.4.
Hier ist ein Beispielcode:
%Vor%Skriptmethode:
%Vor%}
Wenn ich einen Haltepunkt im Page_Load-Ereignis einfüge, sehe ich, dass ich hineinkomme und das Ereignis btnAddSave_Click ebenfalls ausgeführt wird.
Haben Sie einen Click-Event-Handler (registriert über jquery), der true
? In diesem Fall wird der Rückgabewert von OnClientClick
ignoriert.
Sehen Sie sich meine Frage an (und antworten Sie): Warum gibt false nicht von OnClientClick zurück, um das Postback zu stornieren
Tolle Antworten. Ich mache es so. Selbes Ergebnis - das OnClick-Ereignis wird nicht ausgelöst, wenn von der Java-Funktion false zurückgegeben wird.
%Vor%Ich schreibe diese Antwort nur, weil ich HTML-Schaltflächen mit ASP.NET WebForms verwende und ich keine Lösung finden konnte. Warum sollte ich meinen Code durch Arbeitsbeispiele ersetzen? Hier ist die Lösung, warum es nicht funktioniert. Ich hoffe, es wird Ihnen helfen, das Problem zu verstehen, als ob es mir geholfen hat. Dies ist mein erster Beitrag, also Entschuldigung für Stil.
%Vor%Und JavaScript-Funktion:
%Vor%Die Verwendung von clientseitigem Klick nach korrekter Validierung löste auf der Serverseite kein Ereignis aus, das mit button verknüpft war. Lösung erwähnt, um das Stück Code zu ändern:
onclick="if (! myValidation ()) return;"
Das funktioniert so, weil html auf der Seite mit onserverclick gerendert wird. Onserverclick auf HTML-Button wird durch __doPostBack-Methode von Javascript ersetzt. Der vollständige Code der HTML-Schaltfläche, der auf der Clientseite gerendert wird, sieht folgendermaßen aus:
%Vor%Und nachdem er durch if ersetzt wurde.
%Vor%Arbeiten mit return myValidate (); wird kein Ereignis tyrgger, weil es vor __doPostBack zurückgibt.
Der folgende Code ermöglicht es Ihnen, falls nötig, einen anderen Code zur Schaltfläche hinzuzufügen und verursacht keine Probleme.
Tags und Links asp.net validation onclick onclientclick