• ベストアンサー

タブキーでなくエンターキーで次の項目へ

すいませんおせーてください で、ダブルポストです すんごく初心者の質問かもしれません よくある、資料請求系のページで 名前、住所、TEl、メアド・・・ とか入れていく仮定において2つ質問があります。 1 ある項目(例えばテキストボックス)を入力して 次の項目に映る時タブキーを押すと移動するのはわかるのですが、それがエンターキーで次の項目に移動できるようにはできるのですか? 送信を押したのと一緒の扱いになってしまうので何とかならないかな?と 2 もう一つは漢字モードと半角モードを自動的に そのテキストボックスにフォーカスした時に 決めれるのですか? 2は出来た記憶があるのですが、どこにその説明が あったかわかりません 1はわかりませんでした。 <form >で行うやり方はわかったのですが、 資料請求なので、あらかじめ <form action=メールを送るcgi> お名前input 住所input 送信キー </form> とformで囲っているため 多分 <form action=メールを送るもの> <form action=エンターで次に移動するもの> お名前input 住所input 送信キー </form> </form> という囲いができないですよね?(←勘違いかもしれませんが) <form> </form> <form> </form> ならOKですが・・ でjavascriptでできるのかな?と思ってダブルポストです。 どこかのURLでも構わないので教えてくださいませんか?

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

  • ベストアンサー
回答No.1

1. 以下のjavascriptと、そのページの<BODY>タグにonkeyDown="ChgKeyCode()"を記述します。 *****javascript**** function ChgKeyCode(){ if (!(event.srcElement.type == "button" || event.srcElement.type == "submit")){ if (event.keyCode == 13){ event.keyCode = 9; } } } ボタンであれば、送信を押した扱になります。 2. テキストボックスでstyle="ime-mode: active;"を記述します。 ちなみに active :初期値が日本語入力モードになります。 inactive :初期値が英数字入力モードになります。 disabled :英数字入力モードになります。ユーザーの操作によるモードの変更はできません。 いかがでしょうか?

deepimpact
質問者

お礼

<html><head> <TITLE></TITLE> <script type="text/javascript"> function ChgKeyCode(){ if (!(event.srcElement.type == "button" || event.srcElement.type == "submit")){ if (event.keyCode == 13){ event.keyCode = 9; } } } </script> </head> <BODY onkeyDown="ChgKeyCode()" > <form action="./mail.cgi"> <INPUT size="20" type="text"><br> <INPUT size="20" type="text" tabindex="1"><BR> <INPUT size="20"><br> <input name="c" type="radio"><br> <input name="d" type="checkbox"><br> <input type="button" name="e" value="送信"> </form> </body> </html> これでいいんですよね? なんか上手くいかないんですけど (リターンもタブも反応しない) なんか間違ってますか? 2についてはいけると思います。 ありがとうございます。

その他の回答 (1)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

>なんか上手くいかないんですけど >(リターンもタブも反応しない) IEでは event.keyCode == 13 でいいんですけど、 モジラ系では function ChgKeyCode(e){ とかして e.which == 13 とします。 イベントに関するところは、ブラウザに依存するので、ブラウザを判別して、別々に処理を書かないといけません。

deepimpact
質問者

お礼

ありがとうございました 完璧っすね!!

関連するQ&A

  • タブキーでなくエンターキーで次の項目へ

    すいませんおせーてください すんごく初心者の質問かもしれません よくある、資料請求系のページで 名前、住所、TEl、メアド・・・ とか入れていく仮定において2つ質問があります。 1 ある項目(例えばテキストボックス)を入力して 次の項目に映る時タブキーを押すと移動するのはわかるのですが、それがエンターキーで次の項目に移動できるようにはできるのですか? 送信を押したのと一緒の扱いになってしまうので何とかならないかな?と 2 もう一つは漢字モードと半角モードを自動的に そのテキストボックスにフォーカスした時に 決めれるのですか? 2は出来た記憶があるのですが、どこにその説明が あったかわかりません 1はわかりませんでした。 どっかのURLでも構わないので 教えてくださいませんか?

    • ベストアンサー
    • HTML
  • CGIのメールフォームエラーについて

    htmlの送信フォームを作っています。 htmlで作ったデータを次の確認画面のhtmlにもっていって確認させ、最終的には送信とメッセージありがとうというコメントを出したいのです。 <form method="post" action="form.cgi" name="message"> <input type="hidden" name="Thanks" VALUE="thanks.html"> など、そういったところがネックになっているように思うのですが、どこをいじればいいのでしょうか? 持っていきたい項目は、名前・住所・性別・メールアドレス・コメントです。 漠然としていて申し訳ありませんが教えてください。よろしくお願いいたします。

    • 締切済み
    • CGI
  • エンターキーを押しても送信されません。

    IEで以下のソースで、検索文字を入れてエンターキーを叩いても フォームが送信されません。ちなみに、このHTMLには 他に2つのフォームもあります。IEだと複数フォームのSubmit ボタンがあるとエンターキーで送信できないのでしょうか? <form action="" method="post" name="fm3"> <input type="text" name="search_word" value="" size="56" maxlength="255" > <input type="submit" name="search_submit" value="絞りこみ" > </form> FireFoxだと、フォームの入力値が送信されるのですが・・

  • Formに関する質問です

    すみません、カテゴーが違ってたみたいで再度質問させて頂きました。 次のようなformを作りましたが、CGIのプログラムが いまいちわかりません。どなたか教えて頂けませんか。 <HTML> <TITLE>TEST</TITLE> <BODY> <FORM ACTION="test.cgi" METHOD="POST"> 氏名<INPUT TYPE="TEXT" NAME="simei"> 住所<INPUT TYPE="TEXT" NAME="jyusyo"> <INPUT TYPE="Submit" value="データ送信"> <INPUT TYPE="Reset" value="リセット"> </FORM> </BODY> </HTML> 送信すると名前と住所が表示される内容です。

    • 締切済み
    • CGI
  • 複数選択した情報をそのまま次のステップに移行させる方法

    PHP5.2.4を使用しています。 ちょっとPHPと直接関係があるかは分かりませんがお願いします。 選択メニューで複数選択できるようにnameをkey[]として設定して、 例えばこの場合はaとbを選択します。 送信ボタンを押して次の[form2.php]に移ったとします。 そこでprint_r($_POST['key']);とすると、 Array([0] => 'a' [1] => 'b') と表示されるのですが、この$_POST['key']をhiddenで <input type="hidden" name="key[]" value="{$_POST['key']}"> ともたせたいのですが、このやり方だと次の[form3.php]に 移ったときにはprint_r($_POST['key']);とすると Array としか表示されません(当たり前かもしれませんが・・・) これをなんとかして <input type="hidden" name="key[]" value="{$_POST['key']}"> このような持たせ方で移行させる方法はないでしょうか? つまり、 <input type="hidden" name="key1" value="{$_POST['key'][0]}"> <input type="hidden" name="key2" value="{$_POST['key'][1]}"> とはしたくないのです。 [form1.php] <select name="key[]" size="3" multiple> <option value="a">あ</option> <option value="b">い</option> <option value="c">う</option> </select> [form2.php] <input type="hidden" name="key[]" value="{$_POST['key']}">

    • ベストアンサー
    • PHP
  • 別formのhidden項目を自form値として送信したい

    同ページ内に <form name="form1" action="aa"> <input type="text" value="123"> <!-- hidden項目は無い場合もある --> <input type="hidden" name="form1_1" value="xxx"> <input type="hidden" name="form1_2" value="yyy"> <input type="submit"> </form> <form name="form2" action="bb"> <input type="text" value="456"> <input type="hidden" name="form2_1" value="www"> <input type="hidden" name="form2_2" value="zzz"> <input type="submit"> </form> といった感じのformタグをおいています。 そこで、form2を送信する時に、form1のhiddenのみform2のformValueとして送信したいのですが、どんな風に飛ばしたらよいのでしょうか? というより、from2を飛ばすときに、他のformのhidden項目があったら自formの値として送信することってできるんでしょうか? javascriptでできるんでしょうか? 素人質問ですいませんが、何か足がかりになるようなものをご教授いただければと思います。

  • $_POST受信で必要項目のみを結合したい

    1.a.htmlに入力フォームがあります。   フォームには、「苗字」「名前」「住所県」「住所県以下」の入力項目があります。 ==========入力内容========== 苗字      :斉藤        (input type="text" name="苗字") 名前      :祐樹        (input type="text" name="名前") 住所 県   :東京都       (input type="text" name="住所県") 住所 県以下:世田谷区・・・・   (input type="text" name="住所県以下") 性別: : :(他項目多数) ==========ここまで=========== 2.a.htmlから、test.phpにPOSTで内容を送信します。  a.htmlから受け取った内容をtest.phpにて以下ソースを利用し受信した内容を表示させたいと思います。 ==表示内容ソース== //1.一度格納。 foreach( $_POST as $key => $value ) {   $array[$key] = $value; } //2.格納配列表示 foreach( $array as $key => $value ) {   echo $key . ":" . $value. "<br>"; } ==========表示内容========== 苗字      :斉藤 名前      :祐樹 住所 県   :東京都 住所 県以下:世田谷区・・・・ : :(他項目多数) ==========ここまで=========== 3.表示内容を以下のように変更したいと思っております。   「苗字+名前⇒姓名」「住所県+住所県以下⇒住所」として出力したいと考えています。 ==========表示内容========== 姓名:斉藤祐樹 住所:東京都世田谷区… : :(他項目多数) ==========ここまで=========== 質問: 配列$array[$key]に格納時に、 ・「苗字と名前のkeyに対する内容(value:斉藤と祐樹)を結合し、新しく姓名(key)」:苗字+名前(value)を$array[$key]に格納したいと思っております。(上記3のようにしたい) また、結合に使用した、【苗字と名前】のkey、valueは不要のため破棄したいとも考えています。 考え)  $array['姓名']=斉藤祐樹; (もとは、$array['苗字']=斉藤、$array['名前']=祐樹、結合後は不要) 同じように、「住所県+住所県以下⇒住所」も結合し、格納したいと考えております。 $_POST取り出し時のforeachにどのようなコードを記述すれば、 思い通りの結果を得ることができますでしょうか? //取り出しforearch foreach( $_POST as $key => $value ) {   $array[$key] = $value; } ご教授よろしくお願いします。

    • ベストアンサー
    • PHP
  • 複数FORMの一括実行について

    通常であれば同一サイト内に下記のソース(フォーム)が入るのですが、 これを改良しサイト上で希望の送信先をチェックボックスで選択し一回の操作で複数のcgiを実行したく思います。 良いcgiがあれば教えてください。 又は改造ができるcgi、修正方法を分かりましたらお教え願います。 サイトA <form action="https://aaa.cgi" method="post"> <input type="hidden" name="名前" value="name"> <input type="hidden" name="メール" value="mail"> <input name="Submit" type="submit" value="送信"> </form> サイトB <form action="https://bbb.cgi" method="post"> <input type="hidden" name="名前" value="name"> <input type="hidden" name="メール" value="mail"> <input name="Submit" type="submit" value="送信"> </form> サイトC <form action="https://ccc.cgi" method="post"> <input type="hidden" name="名前" value="name"> <input type="hidden" name="メール" value="mail"> <input name="Submit" type="submit" value="送信"> </form>

    • 締切済み
    • CGI
  • form 内 onChange

    恐れいります。 <form>内で、もう一つ<form>を作成し、送信したいのですが、 なかなかうまくいきません。form内のformは、selectボックスで、選択時に自ページにsubmitさせるようにしたいのですが。。 <form action="./xxx.cgi" method="POST"> <input type="text" name="xxx"> <form action="./" method="POST"> <select name="YYY" onChange="this.form.submit()"> <option value="ddd">ddd <option value="eee">eee </select></form> <input type="text" name="xxx"> <input type="submit" value="送信"> </form> よろしくお願いします。

    • ベストアンサー
    • HTML
  • エンターキーによる検索。

    すみませんが、よろしくお願いいたします。 フォームで検索できるようにしているのですが、エンターキーを押すと検索ボックスの文字が消えてしまい、検索できません。 一方、「送信」ボタンを押すと正常に動作します。 一般的なポータルサイトのように、検索ボックスにキーワードを記入し、その後エンターキーを押すだけで検索できるようにするにはどうすればよいのでしょうか。 よろしくお願いいたします。 ============ <form> <input type="text" id="txtWord" size="50" value="" /> <INPUT type="hidden" value="1" id="page1" name="page"> <INPUT type="button" value="検索" onclick="execute()"> </form>