0

サード パーティのユーザー コントロール (キャプチャ コントロール) があり、その中にキャプチャ イメージとテキスト ボックスがあります。

Web ページで上記のユーザー コントロールを使用しています。Web ページに 3 つの送信ボタンがあります (キャプチャの検証、ページの送信、ユーザーの追加)。マウスを使用して [Validate Captcha submit] ボタンをクリックすると、キャプチャが空であるかどうかが検証され、javascript アラートが表示されます。

テキストボックスに有効なキャプチャテキストを入力し、カーソルがテキストボックスにあるときにEnterキーを押すと、問題が発生します。ページが更新されるだけです。変更できないサードパーティのユーザー コントロールを使用しているため、キープレス イベントをテキスト ボックスに追加して Validate Captcha ボタン イベントを呼び出すことができません。

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

残っている唯一のオプションは、これらをパネルで囲み、デフォルトのボタンを設定することです。

これを達成するためのより良いオプションがあれば教えてください。

4

2 に答える 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>

それはそれであるはずです..テストされていません.質問があれば教えてください.

于 2009-07-30T03:31:36.687 に答える
0

キャプチャを独自に配置し、キャプチャの送信ボタンの ID を使用してパネル<asp:Panel>のプロパティを追加します。DefaultButton

于 2009-07-30T03:36:12.030 に答える