0

それが新しい話題ではないことはわかっていますが、先週の金曜日以来、私はこれに固執しています...誰でも...

ユーザーがEnterキーを押したときにポストバックが生成されず、代わりにタブイベントが生成されるように、カスタムテキストボックスを作成するように求められました。私のカスタム テキスト ボックス クラスでは、Render メソッドでこれを行いました。

Me.Attributes.Remove("onkeydown")
Me.Attributes.Add("onkeydown", "if(event.keyCode == 13){return event.keyCode = 9;})

IEでのみ動作します。FF では、Which プロパティを使用しますが、読み取り専用であることがわかりました。したがって、Chrome でもこのプロパティに値を設定できないと想定しています。

それが私の2回目の試みです:

Me.Attributes.Remove("onkeydown")
Me.Attributes.Add("onkeydown", "if(navigator.userAgent.indexOf('MSIE') != -1){if(event.keyCode == 13){return event.keyCode = 9;}} if(navigator.userAgent.indexOf('Firefox') != -1){if(event.which == 13){return event.which = 9}} if(navigator.userAgent.indexOf('Chrome') != -1){if(event.keyCode == 13){return event.keyCode = 9;}}")

できます。使用しているブラウザーを正しく検出しますが、キーコード値の設定に関しては、IE でのみ機能します。

私はいくつかの調査を行い、ここで質問をしましたが、js ファイルを dll プロジェクトの埋め込みリソースとして使用できると言われました。私はいくつかの例に従いましたが、それを機能させることができませんでした。VS2005 と VB.net を使用しています。

私の他のオプションは、JavaScriptで新しいキーイベントを作成し、それを起動しようとすることでした. which と charCode に値を設定することはできませんが、成功しませんでした.

インラインjqueryも挿入しようとしました。どちらも機能しませんでした。

インライン JavaScript が悪い習慣であると言う前に、私はそれが悪い習慣であることを既に知っています。しかし、これらのコントロールは巨大な (本当に... 巨大な) システムで使用されています。わずかな変更で問題が発生する可能性があります。可能であれば、私が使用しようとしたようにインライン JavaScript を使用したいと思います。javascriptを使用してタブイベントをシミュレートするにはどうすればよいですか? 不可能な場合は、js ファイルを埋め込みリソースとして追加する方法を誰かに説明してもらえますか?

4

0 に答える 0