• ベストアンサー

[Javascript]エンターキー押下でTABキーコード送出!

こんにちは。 エンターキーで複数のテキストフィールドを移動するというような質問は多く出ていまして、私もそれを参考に画面を作っています。 今回私が悩んでいますのが、エンターキーの押下でTABキーと同じ動きをさせたいのです。 理由はいろいろありまして、そのうちの1つがTABINDEXを有効にしたいという点です。 これはエンターキーとTABに限ったことではなく、例えば「A」の入力で画面には「B」と表示するとか・・・。色々使い方はあると思いますが。 是非とも宜しくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • you111111
  • ベストアンサー率45% (20/44)
回答No.2

bodyのonkeyDownイベントで以下の関数(javascript)を呼んでみて下さい。 keycodeを13(Enter)から9(Tab)に変換するものです。 ちなみに以下のFunctionではイベント発生元がボタンかsubmitだった場合コード変換しません。 function ChgKeyCode() { if (!(event.srcElement.type == "button" || event.srcElement.type == "submit")) { if (event.keyCode == 13) { event.keyCode = 9; } } } >これはエンターキーとTABに限ったことではなく、例えば「A」の入力で画面には「B」と表示するとか・・・。色々使い方はあると思いますが。 同じ様にしてキーコードを変換してやれば可能ですよ。

zenon55
質問者

お礼

こんばんは!有難う御座います!!!いけました。 ホント助かりました!!

その他の回答 (1)

回答No.1

エンターキーでTABのように動かすのはちょっと難しいですね。 イベントハンドラでエンターだけ拾えればよいのですが、 そのようなハンドラは知っている限り(手持ちの書籍を含む) 存在しませんので、onKeyDownで入力された文字の種類を 判定させるくらいしか思いつきません。 しかし、それをクリアしてしまえば後は簡単です。 エンターを拾ったらば次のテキストボックスにフォーカスを 移してしまえばTABと同じになります。 頼りない回答で申し訳ないのですが、少し試してみて下さい。

zenon55
質問者

補足

なるほど・・・。次のテキストボックスにフォーカスに移すことはできています。 TABINDEXで指定した順番にフォーカスを動かしたいのです。エンターで次のテキストボックスにフォーカスを動かすだけでは足りないんです・・・。 どうしましょ。。。 なんか策はないでしょうか・・・。

関連するQ&A

  • JavaScript Enterキーを押下時『TAB』の動きを割り当てたい

    教えて下さい。 Enterキーを押下時『TAB』の動きを割り当てたいのですが、おわかりになりますでしょうか?

  • キーコードの取得について

    テキストフィールド入力時、日本語入力モードになっているときのキーコードの取得はできないのですか? ENTERキー押下での確定を (+)キー押下での確定にしたいのですが・・・。 何か方法がありましたら、よろしくお願いします。

  • indesign Tabキーについて

    文中で入力のときTabキーを押すと一定の間隔でカーソルが移動し空白スペースを入力したのと同じように動くと思ったのですが、Indesignで文中にTabキーを入力すると、カーソルの間隔が一定ではなくバラバラに移動するのですがこれは一定にはできないのでしょうか?どうしてそのような動きをするのでしょうか?

  • vbで[ctrl]+[tab]を認識させるにはどうしたらよいでしょうか?

    はじめまして、どうしてもうまくいきません。教えてくださいませ。 [ctrl]+[tab]キー入力を認識させるにはどうしたら良いでしょうか? 現在、VBでMDIフォームを使用してプログラムを作っております。 [ctrl]+[tab]キー入力を行なうと、子フォーム間でフォームの移動が起こってしまいます。CommandButton押下時にのみ、フォームの移動を行なうようにしたいので、 [ctrl]+[tab]キー入力を制御して実現させようとしているのですが、うまくいきません。 MSDNライブラリには、KeyUpとKeyDownのイベントで Tabキーの操作は発生しないと書いてありました。。。 何か方法がありましたらお教えいただけると助かります。 どうぞよろしくお願いします。

  • Excel VBA tabキーでtextを移動

    Excelシート上のテキストボックスやコンボボックスに入力後、TABキーで次のボックスに移動することを考えています。 keycode=9でTABキーを検出し textbox1.activate としてもtextbox1にカーソルが立ちません。 TABキーで移動して即入力できるようなプログラムはできないでしょうか?

  • [Enter]エンターキーでカーソル移動する方法

    プログラム(VB.NET)初心者です。 どうぞよろしくお願いします。 フォームに複数のテキストボックスを配置しているのですが、 タブで次のテキストにフォーカスが移動するように [Enter]キー押下時もフォーカスを次のテキストに移動させたいのです。 色々試してみたものの、なかなかうまくいきません(><) どなたか、わかる方教えていただけたら幸いです。 サンプルソースがあると嬉しいです。 申し訳ありませんが、宜しくお願いします。

  • 【Tabキー】特定の範囲内だけでフォーカスを循環

    お世話になります。 javascript初心者のため、的外れな質問をしていましたらすみません。 HTMLサイトのフォーカスを、TabキーまたはShift+Tab押下で特定の範囲内で循環させたいと考えております。 イメージ的には、サイトのメニューにあたる部分(リンク)をぐるぐるループしてくれれば・・・と思うのですが。 Tabindex指定ですと、意図した順番には移動してくれますが、最後のTabが押されても最初に戻ることはできませんし・・・ そう思ってonkeydownで制御しようと思ったのですが、Shift+Tabの動作をどう実現していいのか分かりませんでした。 言葉足らずで申し訳ありませんが、ご回答宜しくお願い致します。

  • IEでWEBを閲覧しているときにTabキーを押下すると

    IEでWEBを閲覧しているときにTabキーを押下すると、次々とターゲットが移動していきます。 (現在、この質問文をご覧になっている方の場合、 1回目の押下で、アドレスバー、 2回目で広告、 3回目でインフォシークと移動するかと思われます。) この動作は、なんという名称で呼ばれているのでしょうか?

  • キーボードのtabキーとenterキーの変換

    ホームページのあるページにテキストフォームがあります。 キーボードのtabキーを押した時に、enterキーを押した時の処理を施したいと思っています。 通常tabキーを押せば次のフォームにカーソルが移動するかと思いますが、 このページではそれがenterキーとして動いてほしいと思っています。 このテキストフォームの横にはsubmitも置いており、即時にsubmit送信したいのです。 テキストフォームは一つだけです。 なぜそういうことをしたいかというと、スキャンでバーコードを読取りテキストフォームに数値を表示させます。 このスキャナーは設定でスキャンした後にtabキーをセットすることが可能で、 キーコードを確認してもスキャン後にtabキーを入力しているようでした。 しかし、tabキーではスキャン後にsubmit送信されませんので、tabキーをenterキーに変換してしまえばスキャン読み取り後即時にそのフォームが送信されるのではないかと思っています。 このスキャナーでは読み取り後にenterキーを打つという設定はあるのですが、 複数のフォームがある場合にスキャンした値を入力していくことができません。 (※別ページには複数のフォームが存在する) どうすればキーコードを変換してtabキーをenterキーに変換できるのでしょうか? ブラウザはGoogle chromeです。 OSはWINです。 その他不明点がありましたら、ご質問下さい。 よろしくお願いします。

  • ExcelテキストボックスのTab順番を変更したい。

    Excel2003を使用しています。 テキストボックスを複数作成しました。 そのテキストボックスに入力をどんどんしていきたいので、Tabキーを使用したいと思っています。 その際に次のボックスに移動する順番を指定したいのです。 現時点ではTabキーを押していくと、 名前ボックスに「テキスト1」「テキスト3」「テキスト4」「テキスト2」の様に表示され、 順番もバラバラになっています。 何か良い方法はありませんでしょうか。 宜しくお願い致します。