• ベストアンサー

Tabに関して

以前以下のソースのようにテキストボックスを4つくらい並べて、最大入力文字数になったら、自動的に右のテキストボックスに入力できるようにすることはできるのでしょうか? と質問をし、返答を頂いたのですが、自動的に右のテキストボックスに入力できるようにはなったのですが、キーボードのTabを使ってしまうと、全てのテキストボックスが最大になっていて、はじめのボックスでタブを押すと、3つめのボックスに飛んでしまいます。何か回避する方法がありましたら教えてください。 <html> <head> <title></title> </head> <body> <form name="form1"> <input type="text" name="txt1" size="7" maxlength="3">. <input type="text" name="txt2" size="7" maxlength="3">. <input type="text" name="txt3" size="7" maxlength="3">. <input type="text" name="txt4" size="7" maxlength="3"> </form> </body> </html>

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

  • ベストアンサー
  • s_doc
  • ベストアンサー率24% (93/377)
回答No.3

スクリプトがわからないのでアルゴリズムの話をします。 tohiyoさんは、 最大入力文字数に「なったら」フォーカスを移したいのに、 最大入力文字数で「あったら」フォーカスを移すというスクリプトを書いてませんか? もし後者なら、 元のボックスでタブを押して2つめのボックスにフォーカスが移ったとき、 既に最大文字数なら更にフォーカスを移すという動作は「指示通り」です。 このサイトでは特定の人の過去の質問を簡単に検索することができないようになってるので、 過去の質問へのリンクを張るか、 スクリプトを再掲して質問されることをお薦めします。 外してるかもしれないので「自信なし」(笑

tohiyo
質問者

お礼

皆様ご回答ありがとうございましたm(__)m

tohiyo
質問者

補足

以前投稿したときに骨組みを書いていただいたことがあり、以下のような感じで付け足してみました。これは「指示通り」なのでしょうか・・・ <html> <head> <script language="JavaScript"> <!-- var str; function inputkey1(){ str = document.hoge.textbox1.value; if ( str.length >= 3 ) document.hoge.textbox2.focus(); } function inputkey2(){ str = document.hoge.textbox2.value; if ( str.length >= 3 ) document.hoge.textbox3.focus(); } function inputkey3(){ str = document.hoge.textbox3.value; if ( str.length >= 3 ) document.hoge.textbox4.focus(); } … //--> </script> </head> <body> <form name="hoge"> <input type="text" name="textbox1" onkeyup="inputkey1()"> <input type="text" name="textbox2" onkeyup="inputkey2()"> <input type="text" name="textbox3" onkeyup="inputkey3()"> <input type="text" name="textbox4"> </form></body></html>

その他の回答 (2)

noname#199778
noname#199778
回答No.2

具体的にどういったスクリプトにしているのかがわからないと、対処しにくいと思います。 ちょっと前の質問を捜して見てみました。 もしその回答を参考にそのまま作ったのであれば、イベントハンドラをonKeyupからonKeypressにしてみてはいかがでしょうか。 見当違いでしたら、ごめんなさい。

  • mrumesuke
  • ベストアンサー率45% (254/557)
回答No.1

>自動的に右のテキストボックスに入力できるようにはなった >全てのテキストボックスが最大になっていて、はじめのボックスでタブを押すと、3つめのボックスに飛んでしまいます tohiyoさんの環境は? 私の環境(Win2k+IE6/Netscaoe7)ではどちらも再現しません。

tohiyo
質問者

補足

IE6/Netscape7です。IPアドレス入力の入力みたいな感じ作ってみたいのですが、どうでしょう・・・

関連するQ&A

  • 入力に関して。

    以下のソースのようにテキストボックスを4つくらい並べて、最大入力文字数になったら、自動的に右のテキストボックスに入力できるようにすることはできるのでしょうか? <html> <head> <title></title> </head> <body> <form name="form1"> <input type="text" name="txt1" size="7" maxlength="3">. <input type="text" name="txt2" size="7" maxlength="3">. <input type="text" name="txt3" size="7" maxlength="3">. <input type="text" name="txt4" size="7" maxlength="3"> </form> </body> </html>

  • 教えてください!

    今、下記のような感じのソースでグラフのようなものをつくっていますが、A~Cのテキストボックスにそれぞれ数字を入力したら、その入力した数字の数だけ”☆”を表示させようとしたのですが、うまく表示されません。一つのテキストボックスだけだとうまく表示されるのですが、複数になると失敗してしまいます。ループの使い方も良くわかっていないのだと思うのですが、、表示させる方法を教えていただきたいです、お願いします。 <html> <head> <title></title> <script language="JavaScript"> <!-- function mkgrph(max){ var col; for( col =1; col <= max; col++){ document.write("☆彡"); } } //--> </script> </head> <body> <form name="form1"> <center> 数字を入力<br> A:<INPUT type="text" size="5" name="txt1"><br> B:<INPUT type="text" size="5" name="txt2"><br> C:<INPUT type="text" size="5" name="txt3"><p> <INPUT type="button" value=" グラフ " onClick="mkgrph()"> </center> </form> </body> </html>

  • formタグ

    HTMLで、formを使用し、CGIへテキストエリアのデータをpostしたいと 考えております。 テキストエリアを3つ、ボタンを1つ設けるならば 通常以下のようにすると思います。(必要部分の抜粋) <form action="foo1.cgi" method="post" ENCTYPE="multipart/form-data"> <input type="text" name="text1" value="text1" size=50 maxlength=100> <input type="text" name="text2" value="text2" size=50 maxlength=100> <input type="text" name="text3" value="text3" size=50 maxlength=100> <input type="submit" name="aaa" value="実行"> </form> こうすると、実行ボタンをクリックすると、text1、text2、text3のテキストエリアに 記述されているテキストが送信されますが、ここにボタンをもう一つ設け、 上記3つのデータを別のCGIに送信したいのですが、 この場合どのようにHTMLを記述したらよいでしょうか? 新たに下記のようにformタグを設けると、テキストエリアは6つになってしまいますし。。。 <form action="foo2.cgi" method="post" ENCTYPE="multipart/form-data"> <input type="text" name="text1" value="text1" size=50 maxlength=100> <input type="text" name="text2" value="text2" size=50 maxlength=100> <input type="text" name="text3" value="text3" size=50 maxlength=100> <input type="submit" name="aaa" value="実行2"> </form> どなたか分かる方情報頂けますか。

    • ベストアンサー
    • HTML
  • VBSからjavascript

    下記ソースの指定の箇所からjavascriptのfunction fun1(1)をよびたいのですがどう記述したらいいでしょうか。 (ちなみにbody onload=は使わない条件です) <%@ LANGUAGE = VBSCRIPT %> <html> <head> <script type="text/javascript"> <!-- //禁止、許可 function fun1(is){ var is; var i; var jj; jj=document.form1.text2.length; for (i=0;i<jj;i++){ if (is==1) document.form1.text2[i].disabled=true; if (is==2) document.form1.text2[i].disabled=false; } } //--> </script> </head> <html> <body> <form name="form1"> <input type="text" name="text2" size="14" maxlength="8" value="ABC"> <input type="text" name="text2" size="14" maxlength="8" value="DEF"> <% <-------------------ここでfun1(1)をよびたい fun(1)と書いてもエラー >% </form> </body> </html>

  • 値の取得について

    IPアドレス入力欄のように以下のソースのような流れを作成したのですが、エリアに3文字入力をして、入力したものの最後の文字が数字であったら、キーボードのTabを使っても、onKeyUpで呼んだ関数でも、その入力した3文字が数字だと認識してすぐ横のエリアに移りたいのですが、その入力をした際の3文字目の値を取得することは可能なのでしょうか?Whichを使ってString.fromCharCodeを使って押されたキーを取得しようとしたのですが、構文エラーになってしまい、困っています。 例 入力したものが1a1→数字と認識されて横のエリアに飛ぶ         11a→三文字目が"a"だから数字でないので飛ばない <script language="JavaScript"> <!-- var str; var data; function tobu1(){ str = document.form1.txt3.value; data = str.match(/[^0-9]/g); if( str.length >= 3 && !data ) document.form1.txt4.focus(); } ・・・ <body> <INPUT type="text" name="txt2" size="3" value="" maxlength="3" onKeyUp="tobu1()" onFocus="this.select()">. <INPUT type="text" name="txt3" size="3" value="" maxlength="3" onKeyUp="tobu2()" onFocus="this.select()">. <INPUT type="text" name="txt4" size="3" value="" maxlength="3" onKeyUp="tobu3()" onFocus="this.select()">. <INPUT type="text" name="txt5" size="3" value="" maxlength="3" onFocus="this.select()">

  • Enterキーでボタンが押下&新しいタブで開くには

    こちらで教えていただきながら、下記のようなhtml文にたどり着きました。 加えて以下のことをしたいと思っており、解説を読みながらいろいろ試していますがうまくいきません…。 (1)テキストボックスに文字を入力した後、Enterキーでボタンが押下されるようにしたい (2)結果の画面を新しいタブで表示したい (head部分に<base target="_blank">と記述してもでダメでした) 上記2つのことが出来るようでしたら、その方法を教えていただけないでしょうか。 どうぞよろしくお願いいたします。 -------------------------------------------- <html> <head> <script type="text/javascript"> <!-- function jump1(){ location.href="http://minkabu.jp/stock/" + document.getElementsByName("code1")[0].value; } function jump2(){ location.href="http://kabu-sokuhou.com/brand/item/code___" + document.getElementsByName("code2")[0].value; } //--> </script> <base target="main"> </head> <body> <form> <input name="code1" size="4" > <br><br> <input type="button" onclick="jump1()" value="サイト1へ"> </form> <form> <input type="hidden" name="code2" size="4"> <input type="button" onclick="jump2()" value="サイト2へ"> </form> </body> </html> -----------------------------------------------------

    • ベストアンサー
    • HTML
  • disabledの点で。2

    また同じソースでの質問なのですが、以下のようなソースで、1のテキストボックスに過去に入力したもの(プルダウンみたいに下がって出てくる履歴のようなもの)を選択すると、2の方の入力ができなくなります。履歴の数字を入れても2の方に記入できるようにするにはどのようにしたら良いのでしょうか。また、これらの処理を行うとき、onChange以外のものを使ってできるのでしょうか?大変困っております、よろしくお願いします。 <html> <head> <title></title> <script language="JavaScript"> <!-- function setTF(){ if(document.form1.text1.value=="") document.form1.text2.disabled = true; else document.form1.text2.disabled = false; } //--> </script> </head> <body> <form name="form1"> 1<INPUT type="text" name="text1" onChange="setTF()"> 2<INPUT type="text" name="text2" disabled> <INPUT type="submit" value="登録" onClick="return setTF()" name="submit"> </form> </body> </html>

  • textbox内の文字数を判別しfocusを移動させる

    textbox内の文字数を判別しfocusを移動させるプログラムを書いたのですが、2つ目のtextboxから記入したりするとうまく動作しません。どうしたらいいのでしょうか?カーソルがどのtextboxにあるか(どのtextboxにfocusしているか)を参照しようとしたのですがそのような関数はあるのでしょうか?教えてください。 <html> <head><title>checkLength</title> <script language="JavaScript"> <!-- document.onkeyup=checkLength; function checkLength() { if(document.form1.text1.value.length==3) document.form1.text2.focus(); if(document.form1.text2.value.length==5) document.form1.text3.focus(); } //--> </script> </head> <body bgcolor="#ffffff"> <form name="form1">半角英数で入力してください。<br> 1...<input type="text" name="text1" size="7"> 3文字入力するとカーソル移動<br> 2...<input type="text" name="text2" size="7"> 5文字入力するとカーソル移動<br> 3...<input type="text" name="text3" size="7"> </form> </body> </html>

  • disabledの点で。

    このソースを開いて、更新ボタンをクリックすると、 2の方のテキストボックスが半透明になりますが、それは半透明にしないようにすることは可能なのでしょうか。 お願いします。 <html> <head> <title></title> <script language="JavaScript"> <!-- function setTF(){ if(document.form1.text1.value=="") document.form1.text2.disabled = true; else document.form1.text2.disabled = false; } //--> </script> </head> <body> <form name="form1"> 1<INPUT type="text" name="text1" onChange="setTF()"> 2<INPUT type="text" name="text2" disabled> <INPUT type="submit" value="登録" onClick="return setTF()" name="submit"> </form> </body> </html>

  • 登録した後のデータについて

    以下のようなプログラムで、テキストボックスの初期値に「あいうえお」を設定しておきます。「書く」を選択してテキストボックスに記入し、「登録」をクリックすると、サーバーの方にテキストボックスに書かれたものが登録されますが、「書かない」の方を選択すると、テキストボックスへの入力が無効になり、半透明になりますが、この際「登録」をクリックすると、サーバーの方には何が登録されたのでしょうか? 自分の考えだと、初期値の「あいうえお」は設定されずにNULLが設定されるのではないかと思うのですが・・至急回答をお願い致します。 <HTML> <head> <title></title> <SCRIPT language="JavaScript"> <!-- function kaku(){ if( document.form1.radi[1].checked == true) document.form1.text1.disabled = false; else document.form1.text1.disabled = true; } //--> </SCRIPT> </head> <body onLoad="kaku()"> <form name="form1"> <INPUT type="radio" name="radi" value="no" checked onBlur="kaku()">書かない<br> <INPUT type="radio" name="radi" value="yes" onBlur="kaku()">書く <p> 名前<INPUT type="text" name="text1" size="30" value="あいうえお" maxlength="16" disabled> <p> <INPUT type="submit" value="登録" name="submit1"> </form> </body> </HTML> ※このソースは試しに書いてみたので、実際には登録されないと思います・・・

専門家に質問してみよう