ASP.NET OnClientClick="return false;" funktioniert nicht

8

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.

    
Patrice Cote 08.10.2010, 20:09
quelle

6 Antworten

4

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

    
M4N 25.07.2011, 06:23
quelle
9

Aus irgendeinem Grund, obwohl ich keine jquery Event Handler hatte, funktionierte es nicht.

Was wirklich funktioniert hat, war:

%Vor%     
Yaron 05.09.2012 08:54
quelle
3

Versuchen Sie, es in

zu ändern %Vor%     
alonso.torres 17.06.2011 18:15
quelle
3

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%     
Bill Pepitone 11.04.2013 14:54
quelle
0

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.

    
LukaszBalazy 05.04.2017 12:52
quelle
0

Fügen Sie einfach javascript:

hinzu

Beispiel:

%Vor%     
pao 06.04.2017 15:47
quelle