2009-07-28 9 views
0

私はキャプチャイメージを持つサードパーティ製のユーザーコントロール(キャプチャコントロール)を持っています。その中にテキストボックスがあります。asp.net 2.0のデフォルトボタンを設定する

私は上記のユーザーコントロールを自分のウェブページで使用しています。私は自分のWebページに3つの送信ボタンを持っています(Captchaの検証、Submit Page、Add User)。 Captcha Submitボタンをマウスでクリックすると、captchaが空で、JavaScriptのアラートを表示しているかどうかを検証しています。

問題は、テキストボックスに有効なcaptchaテキストを入力し、カーソルがテキストボックスにあるときにEnterキーを押したときに発生します。ページはちょうどリフレッシュされます。テキストボックスにkeypressイベントを追加できず、私が変更できないサードパーティのユーザコントロールを使用しているので、Captchaボタンイベントの検証を呼び出すことができません。

また、Page.ClientScript.RegisterHiddenField(...)は、同じページ内に2つの送信ボタンがあるため、私のケースでは機能しません。

左側のオプションは、これらをパネルに囲み、デフォルトボタンを設定することです。

誰でもこれを達成するためのより良い選択肢があるかどうか教えてください。

答えて

0

おはようございます!私もあまりにも多くの第三者コントロールを使用しています。これらのコントロールについて覚えておいていただきたいことは、最終的にはHTMLだけを出力することです。つまり、DOMを使用して、onKeyPressなどのイベントハンドラにアクセスして添付することができます。このトリックは、コントロールの作成者があなたが探しているコントロール(この場合は{textbox})の名前を特定することです。これを達成する最も簡単な方法は、単にページを実行してページソースを表示することです。これは、その後、あなたが私たちをしなければならないすべてはあなたのハンドラ

例オブジェクトと設定を取得するためのdocument.getElementByIdを使用し、それがブラウザにレンダリングされ、送信されたとして、あなたが名前を見つけることができるということがあります:

<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> 

これはすべきことです。あなたが質問にぶつかるならば、私に知らせてください。

0

captchaを独自の<asp:Panel>に入れ、パネルのDefaultButtonプロパティにcaptchaの送信ボタンのIDを追加します。

関連する問題