2009-07-28 10 views
0

Ich habe 3rd Party User Control (ein Captcha-Steuerelement), die ein Captcha-Bild, ein Textfeld enthält.Einstellung Standardschaltfläche in asp.net 2.0

Ich verwende das oben genannte Benutzer-Steuerelement in meiner Webseite. Ich habe 3 Buttons auf meiner Webseite (Validiere Captcha, Seite einreichen, Benutzer hinzufügen). Wenn ich mit der Maus auf die Schaltfläche "Captcha bestätigen" klicke, überprüfe ich, ob das Captcha leer ist und eine JavaScript-Warnung anzeigt.

Das Problem kommt, wenn ich den gültigen Captchatext in das Textfeld eingeben und die Eingabetaste drücken, wenn sich der Cursor im Textfeld befindet. Die Seite wird gerade aktualisiert. Ich kann das Tastenkürzel-Ereignis nicht zum Textfeld hinzufügen und das Ereignis "Captcha-Schaltfläche validieren" aufrufen, da ich das Benutzersteuerelement des Drittanbieters verwende, das ich nicht ändern kann.

Auch, Page.ClientScript.RegisterHiddenField (...) funktioniert nicht in meinem Fall, da ich zwei andere Senden-Schaltfläche auf der gleichen Seite haben.

Nur die Option übrig ist, diese in Panels einzuschließen und die Standardschaltfläche zu setzen.

Bitte lassen Sie mich wissen, wenn jemand bessere Möglichkeiten hat, dies zu erreichen.

Antwort

0

Grüße! Ich benutze auch viele Kontrollen von Drittanbietern. Die Sache, an die man sich erinnert, ist, dass sie am Ende nur HTML ausgeben. Dies bedeutet, dass Sie mit dem DOM auf Ereignishandler wie onKeyPress zugreifen und diese anhängen können. Der Trick besteht darin, zu ermitteln, wie Ihr Steuerelementersteller das Steuerelement benannt hat, nach dem Sie suchen, in diesem Fall ein {textbox}. Der einfachste Weg, dies zu erreichen, besteht darin, die Seite einfach auszuführen und die Seitenquelle anzuzeigen. Es ist dort, dass Sie den Namen finden, wie es gemacht wird und an den Browser gesendet, nachdem alles, was Sie tun müssen, um uns document.getElementById verwenden das Objekt und Setup-Handler

Beispiel zu erhalten:

<script> 
    //Place this AFTER your textbox control is declared in the HTML 
    //Get the textbox 
    var textbox = document.getElementById('nameOfRenderedControlHere'); 
    //Assign the event handler and function you want it to call 
    textbox.onclick = function() { validateCaptcha(); }; 

    function validateCaptcha() 
    { //Do your Stuff here } 
</script> 

Das sollte es sein..hat getestet, lassen Sie mich wissen, wenn Sie auf Fragen stoßen.

0

Setzen Sie das Captcha in eine eigene <asp:Panel> und fügen Sie eine DefaultButton Eigenschaft für das Panel mit der ID des Captcha's Submit-Buttons hinzu.

Verwandte Themen