• 締切済み

エンターキーで表の中のフォームを順番にカーソル移動

質問させて頂きます。 表の中に複数のフォームを設置した状態の場合で、入力フォームにて 文字を入力した後にエンターキーを押すと次のフォームにカーソルが移動し、 次のフォームでも同様に文字を入力した後にエンターキーを押すと 次のフォームに移動・・・と言った具合で、エンターキーを押す度に 6ヶ所の入力フォームへ上側のフォームから下側のフォームへ順番に移動し、 最後(6つ目)の入力フォーム上にカーソルが来ている時にエンターキーを押すと ボタン(合計或いはSubmit等)が押されるJavaScriptを組もうとしているのですが、 方法が分からず途方に暮れています。 組もうとしている入力フォームですが、こちらに書こうとしたところ文字数オーバーに なってしまいましたので、以下URL先にてTXTファイルをアップしておきました。 http://dragonhorse-railway.com/GooQuestion/JStest.txt どうかご教授頂けると幸いです。

みんなの回答

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

なぜformを分けているのでしょうか? 同じformでやったほうが効率的な気がします。 またformにnameをつけるのは最近ははやっていませんのでどうかと・・・ また質問の際はもう少し簡素な例にしたほうが核心を理解しやすいでしょう とりあえずformをわけたままでサンプルを書いておきます。 だいぶ手を抜いたのですべての場合に当てはまるわけではないですが ある程度汎用性を考えてかいてあります。参考までに <script> try{ document.addEventListener ('keypress',function(e){keypressfunc(e)},true); }catch(e){ document.attachEvent('onkeypress',function(e){keypressfunc(e)}); } function searchNextInput(obj){ var n=document.getElementsByTagName("INPUT"); for(var i=0;i<n.length;i++){ if(obj==n[i]){ return i<n.length-1?n[i+1]:false; } } } function keypressfunc(e){ var t = (e.srcElement || e.target); if(t.nodeName=="INPUT" && t.type=="text" && e.keyCode==13){ var n=searchNextInput(t); if(n) n.focus(); if(e.preventDefault) e.preventDefault(); else e.returnValue = false; } } </script> <FORM><input name="L_LCL" size="8" type="text"></FORM> <FORM><input name="N_LCL" size="8" type="text"></FORM> <FORM><input name="H_HIGH" size="8" type="text"></FORM> <FORM><input name="H_LOW" size="8" type="text"></FORM> <FORM><input name="L_SLOPE" size="8" type="text"></FORM> <FORM><input name="N_SLOPE" size="8" type="text"></FORM> <FORM><input name="LE_LCL" size="8" type="text"></FORM> <FORM><input name="LE_SLOPE" size="8" type="text"></FORM> <FORM><input name="LE_TOTAL" size="8" type="text"></FORM> <FORM><input name="PM_SLOPE" size="8" type="text"></FORM> <input type="button" value="[計算]"> <input type="button" value="リセット">

関連するQ&A

  • エンターキーを押してもカーソルが移動しない方法

    エクセル2007を使用しています。 現在は、エンターキーを押した後のカーソルの移動方向は[下]となっていますが、 指定したセルのみ(D1とします)エンターキーを押してもカーソルが動かない(D1のまま)という設定はできますか? よろしくお願いします。

  • Excelエンターキー押して右のカーソルに動かしたい

    文字又は数字を入力したあとエンターキーを押せばカーソルはすぐ下の移動しますが、右に移動したいのです。取説をで探し出せないので、宜しくお願いします。

  • エンターキーを待って任意のセルへ移動するには

    通常、値を入力したセルの右隣か下にしか移動しないカーソルを、任意のセルに移動させるにはどうしたらいいのでしょうか。例えば、A1に入力して、エンターキーを押すと 次はF5にカーソルが移動するようにしたいのです。 VBAで実現できるでしょうか?

  • 【エクセルVBA】 タブでのカーソル移動の質問です

    ユーザーフォームを設置して、テキストボックスを複数設置し、入力援助するVBAを組んでいます。 タブインデックスのとおりに、タブもしくはエンターキーで、通常はカーソルがテキストボックス間を移動しますが、ほんのたまにですが、エンターキーで移動ができず、またタブキーではテキストボックス内にタブができてしまい、次のテキストボックスに移動しない現象が現れます。 そうした場合はマウスで次のボックスにカーソルを移動しますが非常に面倒です。またこの現象はファイルを再起動したら直ったり直らなかったり、ウインドウズを再起動しても直らなかったりで困っています。 どうしてこのようなカーソル移動の不具合が起こるのか、またはどうしたら無くなるのでしょう?

  • 簡単なカーソルの移動できますか

    カーソルの簡単な移動に関して教えてください。 仮に”A1”に入力後”C1”に入力その後”A3”に入力する過程が各シート毎にあるとします。 毎回同じセルに入力のために”ennter”を押しながらカーソルを移動しています。 何か、セルに入力後、カーソルが次のセルに移動する手っ取り早い方法はありますか? 少しでも仕事を簡素化しようと考えているため、皆さんの力をお借りしたいのです。

  • Illustratorで文字のカーソルの上下の移動幅を変える方法

    Illustratorで文字を入力する時、行の終わりにエンターキーを押すと文字ひとつ分下にカーソルが移動して次の行を書き出すことができましたが、現在わずか数ミリ下に移動するだけとなり、5,6回下に移動させてから次の行を書き始めていて不便です。(小刻みの方が便利な場合もありますが) 文字カーソルの移動幅の調整方法を教えてください。 バージョンはCSです。

  • 文字入力時のカーソル移動について

    例えば、質問や問い合わせなどの入力フォームに文字を入力時、 ある枠に入力してから次の枠へマウスでカーソルを移動して 入力をしています。マウスを使わなくても、次の枠にカーソ ルを移動させる方法があれば教えてください。 つまり、操作がキーボードだけで済むなら便利なので…。

  • カーソルの移動スピードが速すぎて困っています

    NEC Lavie Tab PC-TE307N1Wを使っています。 OSはAndroid4.1です。 日本語で文字入力時、カーソルの移動スピードが速すぎて困っています。たとえば「きって」と入力する場合、大文字の「き」の次に小文字の「っ」を入力するのですが、この時、大文字の「た」から小文字の「っ」まで、キーを8回たたかなければなりません。その8回をスムーズに間違いなくたたかなければ、カーソルが次の入力位置に勝手に移動してしまい、うまく入力できません。このカーソルの移動スピードをもっとゆっくり、PCのキーボードのような動きに変更するにはどうすればいいのでしょうか。 ※OKWaveより補足:「NEC Android搭載タブレット」についての質問です。

  • 帳票フォームでカーソル移動

    帳票フォームでカーソル移動 お世話になります、帳票フォームでフォームヘッダーに非連結txtBoxを2つ置き(txt適用開始日、txt消費税率) 詳細にクエリのフィールドを表示させています。 下記コードでフォームのダブルクリック時にヘッダーのtxtBoxにレコードを表示させています、 その後カーソルをヘッダーの”txt消費税率”に移動させたく DoCmd.GoToControl "txt消費税率" Forms!フォーム名.txt消費税率.SetFocus Me!txt消費税率.SetFocus 色々試しては見たのですがカーソル移動してくれません! アドバイス宜しくお願いいたします。 Dim adoCN As ADODB.Connection   Dim adoRS As ADODB.Recordset Dim strSQL As String Set adoCN = Application.CurrentProject.Connection strSQL = " SELECT *" _ & " FROM ta02消費税" _ & " WHERE 摘要開始日= #" & Me!txt摘要開始日2 & "#" Set adoRS = adoCN.Execute(strSQL) If adoRS.EOF = False Then Me!txt摘要開始日.Value = adoRS("摘要開始日").Value Me!txt消費税率.Value = adoRS("消費税率").Value * 100 Else MsgBox "該当データがありません", vbOKOnly + vbExclamation, "消費税" Cancel = True Exit Sub adoRS.Close adoCN.Close Set adoRS = Nothing Set adoCN = Nothing End If DoCmd.GoToControl "txt消費税率" ←’タイミングも色々ずらして試したのですが・・・ Me!cmd登録.Visible = False Me!cmd削除.Visible = True End Sub

  • カーソルを矢印なしで移動させることは出来ますか?

    矢印キーの位置は遠すぎると思います。 フォームなどに文字入力するときに位置を示すカーソルがありますよね。 これを移動させるには?