Recaptcha verschwindet während PostBack

8

Ich habe ein paar andere Beiträge über die Verwendung von Recaptcha mit ASP.net UpdatePanels gesehen, aber ich habe noch keine Antwort gefunden, die mein Problem löst.

Hier ist mein ASPX-Code:

%Vor%

Das Recaptcha-Steuerelement befindet sich also in einem Benutzersteuerelement, das mehrere .Net-Validierungssteuerelemente (z. B. RequiredFieldValidator) verwendet. Ich muss die Recaptcha und die ASP.net-Steuerelemente validieren, bevor Sie den Prozess fortsetzen können.

Wenn eine der Validierungen fehlschlägt (Recaptcha oder .Net), verschwindet das Recaptcha-Steuerelement. Wenn ich die HTML-Quelle ansehe, wird das Steuerelement nach dem Postback überhaupt nicht geladen, obwohl ich das UpdatePanel zur Aktualisierung auffordere.

Ich kann die Seite nicht vollständig neu laden, da dies alles als ein Overlay oben auf der Seite erscheint und es gibt andere Formularfelder auf der Seite dahinter.

Bitte helfen Sie!

Bearbeiten:

Von C #, wenn das Recaptcha fehlschlägt, rufe ich diesen Code auf:

%Vor%

Beide Warnmeldungen werden ausgelöst, aber der Recaptcha wird immer noch nicht geladen.

    
rf_wilson 20.01.2012, 14:28
quelle

7 Antworten

3

Vergessen Sie den ScriptManager. Alles, was Sie brauchen, ist dieses Skript auf der Seite. Ändern Sie entsprechend für Ihre Identifikatoren:

%Vor%

    
David Stevens 15.11.2012, 22:41
quelle
6

Die akzeptierte Lösung hat bei mir nicht funktioniert. Hier ist die Antwort, die ich versucht habe und arbeite:

ASP.Net, verschwinden Recaptcha, UpdatePanels und Partial PostBacks: Ein für allemal behoben

Im Grunde geht es darum, ein verstecktes div zu erstellen und jquery zu verwenden, um das html neu zu rendern. Auch der Blogpost gibt eine nette kleine Aufschlüsselung der typischen Lösungen (z. B. mit RegisterClientScriptBlock mit einem einfachen Neuladen) und warum sie fehlschlagen.

%Vor%

Code dahinter:

%Vor%     
User 28.12.2012 05:39
quelle
3

Wenn Sie Recaptcha 2.0 verwenden, ist dies Ihr Javascript

%Vor%

Dies ist dein Recaptcha Div

%Vor%

Rufen Sie dann am Ende des Postback-Ereignisses das Javascript auf

%Vor%     
Vijay Kumbhoje 26.10.2015 10:16
quelle
0

Überraschenderweise musste ich den RegisterClientScriptBlock-Aufruf nicht anwenden, damit er funktioniert. Ich benutze einfach:

  

UpdateMode="Immer"

für das Updatepanel und auf der Serverseite rufe ich:

%Vor%

Dies verhindert auch, dass das Captcha eine neue Herausforderung anzeigt.

    
Varga Tamas 19.05.2014 10:53
quelle
0

Meine Antwort ist im Grunde die gleiche wie "Benutzer" ( das funktioniert !), aber jedem zu helfen, der VB benutzt. Ich hätte dort kommentiert, aber ich habe Zippo rep ... (Ich hoffe, dies ist nicht zu sehr ein Verstoß, und dass es jemandem hilft)

Ich portierte das Fleisch von diesem zu VB.NET:

%Vor%     
Hal Driver 05.12.2014 23:20
quelle
0

Ich konnte es mit der Version 2.1.0.0 der reCAPTCHA-Bibliothek für .NET mit Webforms, Skript-Manager und in einem Update-Panel arbeiten lassen.

Zuerst lade ich in der ASPX-Seite außerhalb des Update-Fensters die Google reCAPTCHA-Bibliothek:

%Vor%

Zweitens habe ich auf der ASPX-Seite im Update-Panel ein div hinzugefügt, das als Ziel-Panel zum Laden des reCAPTCHA dient:

%Vor%

Drittens habe ich im Code, der am Ende meines Postback-Ereignisses steht, ein Startscript registriert, um den reCAPTCHA in meinem Ziel-Panel zu rendern

%Vor%     
MAlvarez 19.09.2017 18:20
quelle
-1

Sie müssen reCaptcha-Steuerelement mit Javascript neu laden, versuchen Sie dies:

%Vor%     
Igor 21.01.2012 00:31
quelle

Tags und Links