• ベストアンサー

テキストエリアをenterキーでフォーカス移動したい

複数あるテキストエリア間を、enterキーでフォーカス移動をしたいです。 以下のようにしましたが、2つめのテキストエリアへフォーカス移動すると、改行が入力され、カーソルが2行目へ移動してしまいます。 enterキーを押しているのでこうなってしまうと思うのですが、 カーソルが1行目へ移動するようにするには、どうしたらいいでしょうか? フォーカス移動後に改行コードがあったら、""にreplaceする・・等、試してみたのですが、なかなか上手くいきません。 どなたかお分かりになる方がいらっしゃったら、教えてください。 <HTML> <HEAD> <SCRIPT language="JavaScript"> <!-- function FirstFocus() { document.forms.F1.elements[0].focus(); } function nextFocus(n) { if (event.keyCode == 13) { for (var i = 0, f = n.form.elements; i < f.length; i++) { if (f[i] == n) { (f[i + 1] || f[0]).focus(); } } } } //--> </SCRIPT> </HEAD> <BODY onload="FirstFocus()"> <FORM name="F1"> <TEXTAREA name="T1" rows="5" cols="30" onkeydown="nextFocus(this);"></TEXTAREA><BR> <TEXTAREA name="T2" rows="5" cols="30" onkeydown="nextFocus(this);"></TEXTAREA><BR> <TEXTAREA name="T3" rows="5" cols="30"></TEXTAREA><BR> </FORM> </BODY> </HTML>

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

  • ベストアンサー
  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

キーコードをチェックして CRだった場合のif文ブロックの最後に event.returnValue = false; を追加してみてください

hirori-m
質問者

お礼

できました。 ありがとうございます。感謝します。

その他の回答 (1)

noname#84373
noname#84373
回答No.2

<html><body> <form name="test"> <input type="text" name="a"><br/> <textarea name="c" cols="20" rows="3"></textarea><br/> <input type="text" name="b"><br/> <input type="submit" value="submit"> </form> <script> window.onload = init; function init(){ setFormRet2Tab( 'test' ) } function setFormRet2Tab( form_name ){ obj = document.getElementsByName( form_name )[0]; for( var i=0; i<obj.length; i++){ if(i==0) obj[i].focus(); if(obj[i].type=='text' || obj[i].type=='textarea') obj[i].onkeydown = ret2tab; } } function ret2tab() { var c = event.keyCode; if(c == 13) event.keyCode = 9; if(c == 27) event.srcElement.blur(); } </script> </body></html>

hirori-m
質問者

お礼

参考になりました。 ありがとうございます。

関連するQ&A

  • テキストエリアの末尾にフォーカス

    テキストエリアの末尾にフォーカスを移動する方法はありますか。 <TEXTAREA NAME="TextArea" ROWS="7" COLS="73"> こんにちは。 僕は東京生まれです。★ </TEXTAREA> ★のところに移動させたい。

  • テキストエリアの幅を10桁までにしてスクロールさせないようにしたい

    タイトルのままなんですが、可能でしょうか? <textarea name="textarea" cols="40" rows="10">テスト</textarea> あと、テキストエリアに<pre>タグをつけると改行が入ってしまい、 1行分テキストエリアから離れてしまいます・・・。 テストタイトル<br> <pre><textarea name="textarea" cols="40" rows="10">テスト</textarea></pre> すみません、どなたかわかる方いらっしゃいますか? 教えてください(^^

    • ベストアンサー
    • HTML
  • テキストエリア内の改行

    <textarea cols=  rows= ></textarea> を使ってテキストエリアを作っています。 テキストエリア内に予めコメントを 入れておきたいのですが、そのコメントを 改行したい場合はどうすればいいのでしょうか? <BR>のタグが使えないので困っています。 どなたか教えてください、お願い致します。

  • テキストエリアの作成法

     下記のような横一列に並んだ3つのテキストエリアを作成しました。Mozilla Firefoxではほぼ期待通り表示されましたが、インターネット・エクスプローラーでは全く表示されません。後者でも表示させるにはどうしたらよいでしょうか。 またテキストエリア内の文章に改行をつけるにはどうしたらよいでしょうか。 <form><p class=MsoNormal><span><TEXTAREA ROWS="13" COLS="70" NAME="textarea1"id=textarea1 style="HEIGHT: 540px; WIDTH: 300px; font-size: 9pt" readonly> 『テキスト』 </TEXTAREA> &nbsp;<TEXTAREA ROWS="13" COLS="70" NAME="textarea1"id=textarea1 style="HEIGHT: 540px; WIDTH: 300px; font-size: 9pt" readonly> 『テキスト』 </TEXTAREA> &nbsp;<TEXTAREA ROWS="13" COLS="70" NAME="textarea1"id=textarea1 style="HEIGHT: 540px; WIDTH: 300px; font-size: 9pt" readonly> 『テキスト』 </TEXTAREA></span></p></form>

  • テキストエリア内の改行禁止

    テキストエリア内での改行を禁止するタグを教えてください。 wrap="off" は試したのですが、うまくいきません。 <TEXTAREA rows="1" cols="20" name="list1" class="min2"></TEXTAREA> どうか、よろしくお願いします。 表示上も、出来れば改行しないようにしたいのですが、 出来なければ、結果のみ改行しない形でも構いません。 どうか、よろしくお願いします!

    • ベストアンサー
    • HTML
  • テキストボックスをEnterキーで移動する際のビープ音

    あるテキストボックスでEnterキーを押すと、次のテキストボックスに移動する スクリプトを組んだのですが、動作はしますが必ず「ブー」というビープ音が 鳴ってしまいます。 たぶん、改行できないテキストボックス内でEnterキーを押すことで、「ダメだよー」 っという警告だと思うのですが、どうにかして消すことはできないのでしょうか? どのような些細なことでも構いませんので、ご教授願います! ~Java Script~ function Change(){ if(event.keyCode==13) document.form.name2.focus(); } ~HTML~ <FORM NAME="form"> <INPUT TYPE="text" NAME="name1" onKeyDown="Change()"> <INPUT TYPE="text" NAME="name2"> </FORM>

  • オンマウスでテキストエリアにテキスト表示

    現在、「猫」という文字にカーソルを合わせると text1のテキストエリアに 「ニャンと鳴く」と表示されるスクリプトを作成しました。 記述の一部ですが下に示します。 <form name="form1"> <TEXTAREA name="text1" rows="5" cols="40"></TEXTAREA> </form> <span onmouseover="txt_dsp('text1','ニャンと鳴く');"onmouseout="txt_dsp('text1', '');">猫</span><br> 教えていただきたいのは'ニャンと鳴く'という部分を msg.txtというテキストファイルに書かれた'ニャンと鳴く' で表示したいのですが、どのような記述にしたらよろしいでしょうか? よろしくお願い致します。

  • テキストエリアの改行を変換(初心者

    <textarea rows="5" cols="10" name="myname">AAA BBB CCC</textarea> 上の内容を送信して、 AAA BBB CCC こんな感じで改行してファイルに書き込みしたいのですが、そのままでは改行されず1行で書き込まれてしまいます。 1つずつ改行するにはどうすればいいのでしょうか よろしくお願いします。

    • ベストアンサー
    • Perl
  • テキストエリア内でタグ<BR>を使わずにenterキーで改行したい

    myshop.cgiという、フリーのcgiを使いたくて、超初心者なりに色々 調べながらもなんとか思い通りに出来てきたんですが、一つだけ どうしても自分では解決できなくて、困ってます。 enterキーでは改行できず、<BR>でしか改行できないテキストエリア内に、 ある文章をコピペしたいんですが、コピペした後に、いちいち<BR>を 入れるのが面倒なんで、enterキーで改行できるようにしたいんです。 しかし、どこをどういじればいいのかさっぱりわからなくて・・・。 とりあえず悩んでる付近のコードを載せておきます。 超初心者です!よろしくお願いします! 解決したいテキストエリアは、「サイトの紹介文」を入力するとこです。 ------------------------------------------------------------- print <<"EOF"; </select>$nini</td> </tr> <tr> <td>カテゴリ3 <select name="ct3"> <option value="">選択しない</optin> EOF if ($use_sub) { foreach (0 .. $#cates) { @SUB = split(/\s+/, $subct[$_]); $i=0; foreach $j (@SUB) { print qq( <option value="$_\,$i">$cates[$_] &raquo; $j</option>\n); $i++; } } } if (!$print_url) { $nourl = qq(<span style="color:red;">現在非表\示に設定されています。</span> ); } print <<'EOF'; </select>$nini</td> </tr> <tr> <td>サイトタイトル <small>(タグ利用可\能\ / 同じECサイトのテキスト広告が効果的)</small><br> <input type="text" name="tl" size="68"></td> <tr> <tr> <td>バナーのHTMLコード <small>(アフィリエイト仲介サイトからコピー&amp;ペーストして下さい。)</small><br> <textarea name="code" cols="54" rows="8"></textarea></td> </tr> <tr> <td>サイトの紹介文 <small>(タグ利用可\能\ / 但し改行は反映されないので<span style="font-weight:bold;">&lt;br&gt;を使用</span>して下さい。)</small><br> <textarea name="msg" cols="54" rows="20"><BR><BR><BR><BR></textarea></td> </tr> <tr> <td>価格 <small>(タグも利用可\能\)</small><br> <input type="text" name="url" size="68"></td> <tr> <tr> <td>サイトに関係の深いキーワード <small>(任意。検索で使用、5個までで最大文字数は20文字。)<br> <input size="14" type="text" name="key1" maxlength="20"> <input size="14" type="text" name="key2" maxlength="20"> <input size="14" type="text" name="key3" maxlength="20"> <input size="14" type="text" name="key4" maxlength="20"> <input size="14" type="text" name="key5" maxlength="20"></td> </tr> <tr> <td>サイト紹介文の位置<br> <input type="radio" name="line" value="0" id="bot" checked><label for="bot">バナーの下</label> <input type="radio" name="line" value="1" id="sid"><label for="sid">バナーの横</label></td> </tr> <tr> <td>オススメマーク<br> <input type="radio" name="rec" value="0" id="ron" checked><label for="ron">付けない</label> <input type="radio" name="rec" value="1" id="rof"><label for="rof">付ける</label></td> </tr> <tr> <td>表\示状態 (非アクティブにチェックを入れると一覧には表\示されません。)<br> <input type="checkbox" name="no_act" value="1" id="nact"><label for="nact">非アクティブにする</label></td> </tr> <tr> <td align="center"><br> <input type="submit" value=" 登録する "><input type="reset" value="リセット"> </td> </tr> </table> </form> </div> </body> </html> EOF exit;

    • ベストアンサー
    • CGI
  • テキストエリア内にPHPのソースコードを書く

    <form action="" method="post"> <textarea name="img" cols=40 rows=4 readonly> <?php echo"<?php echo"masao"; ?>"; ?> </textarea></form> このプログラムの結果 <?php echo"masao"; ?> と表示したかったのですが案の定できませんでした。 どのようにしたら表示させることができるでしょうか?

    • ベストアンサー
    • PHP