• ベストアンサー

カーソルの位置指定

onload時にテキストボックス(name="text_box")にフォーカスが当たるようにしています。 onload時にtext_boxに値が入っていれば、カーソルは右寄せにするには どうしたらいいのでしょうか。 selectで選択状態にして逃げてみたのですが BackSpaceキーでtext_boxの値を修正する為、右寄せにした方が 都合がいいので、できるなら右寄せ方法を取りたいと思います。 text_boxの中身の文字数を数えて、その最後の文字数分の場所に カーソルを持っていこう、と考えてみましたが 手間がかかるのと(ってオイ)カーソルの位置指定がわからず、撃沈でした。 onload時に「右寄せ!」という具合に、楽に指定する方法はないものでしょうか? どなたかご存知の方、教えてください。

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

  • ベストアンサー
  • misoka
  • ベストアンサー率35% (56/160)
回答No.2

Internet Explorer4以上でしか動かないと思いますが、 TextRangeオブジェクトを作って、動作させることはできます。 でも、全然ラクじゃないです。 var target = document.form[0].text_box; var txtRange = target.createTextRange(); txtRange.move( 'character', target.value.length ); txtRange.select(); みたいな感じかな...

lovelypooh
質問者

お礼

misokaさん、回答ありがとうございます。 varというとJavaScript内の関数でしょうか? ヒントを頂いたので、移動関数を作ってみます。 (また質問するかもしれませんが) 機会がありましたらまた教えてください(ペコリ)。

lovelypooh
質問者

補足

(補足とお礼を書くところ間違えました) ありがとうございます。 misokaさんのおかげで自分関数(笑)できました。 機会がありましたらまたよろしくお願いします(ペコリ)。

その他の回答 (1)

  • leaz024
  • ベストアンサー率75% (398/526)
回答No.1

テキストボックス内でのカーソル位置を指定することは、できなかったと思います。 で、代替策ですが、IE5.5/NN6.2 では「フォーカスを当てた後に文字列を入れる」ことで、右寄せにできました。(NN4.7 ではダメでした。。) function my_onLoad() {   with (document.フォーム名) {     text_box.focus();     text_box.value = text_box.value;   } } 万能な方法ではありませんが、参考になれば。

lovelypooh
質問者

お礼

leaz024さん、早速の回答ありがとうございます。 返事が遅くなってすみません。 onloadでフォーカスを当てていれば、どういう風に遷移してきても 必ず文字列を入れる前にフォーカスが当たった状態ですよね? (何か日本語が変だ) なのにどうしても左寄せになってしまうんです。 submitで自画面に遷移後にこの状態にしたい、というのが悪いのでしょうか? ちなみにソース(抜粋)は ↓ ********************************************************************** <BODY onload=test.text_box.focus()> <%     '=============================================================     ' パラメータよりtext_boxの入力値を取得     '=============================================================       strtext_boxNo = Request.Form("text_box") %> <form name="test" action="test.asp?Mode=<% = Server.URLEncode(1) %>" target="_self" method="post" onsubmit="return Ftext_boxChk();"> <input type="text" name="text_box" value="<%=strtext_boxNo%>" size=7 maxlength=6 onKeyPress="FKeysPress()" style="ime-mode: inactive"> ********************************************************************** <input type>前でもう一度フォーカスを当てるとエラーが出てしまって・・・。 もうちょっとソースを読んで考えてみます。 『フォーカスを当てた後に文字列を入れると右寄せになる』というのは 大変ありがたい情報でした。 また機会がありましたらよろしくお願いします(ペコリ)。

関連するQ&A

  • リンクにカーソルを合わせると指定した部分に文字を表示

    リンクにカーソルを合わせると、ステータスバー(?)やテキストボックスに 文字を表示させる方法はすぐ見つかるんですが、 指定した部分(枠の中とか)に1文字ずつ指定した文字を表示させるには どうすればいいのでしょうか? あるサイトで見つけたので、できないことはないと思うんですが・・・ わかりにくいかもしれませんが、どなたかお願いします。

  • PHPファイル内のテキストフォームにカーソルを当てる

    Javascriptでは、 <body onLoad="document.form.(フォーム名).focus();"></body> という一行を書き込めば、指定したテキストフォームに最初からカーソルが当たっている状態となると思いますが、これをPHPファイル内の、echo文の中に書かれたテキストフォーム u_id にページ読み込み時からカーソルを当てる方法はないでしょうか? ちなみに該当部分のPHPスクリプトは以下のとおりです。 echo "<TD WIDTH=50%><INPUT TYPE=TEXT NAME=u_id SIZE=12></TD></TR>\n"; よろしくお願いします。

    • ベストアンサー
    • PHP
  • 【Javascript】(テキストボックスの)テキストの末尾にフォーカスを置きたい【フォーム】

    onLoad時にテキストボックスにフォーカスをあてるのですが、 質問タイトルのようなことができません。 前ページからPOSTで持ってきた文字列を入れたテキストボックスなのですが、 BODYタグ部分にonLoad="frm.elm.focus();"と書くと、 そのテキストボックス内の文字列の先頭にフォーカスが行きます。 文字列の続きを入力する項目なので 文字列の末尾にフォーカスを置きたいのですが 方法はありますでしょうか。 ご存知の方いらっしゃいましたらご教示願います。 質問が解りづらかったらすみません。 宜しくお願い致します。

  • テキストボックスでのカーソルについて

    VB6で作ったフォームでテキストボックスにフォーカスが移ったときに既に入っている文字列の先頭にカーソルがいるのですが、これを文字列をすべて選択した様に(反転表示)にならないか、または文字列の最後尾にカーソルを置けないか、悩んでいます。よろしくお願いいたします。

  • IE上のカーソル位置に文字列を書き込む方法

    JavaScriptでカーソルの位置(テキストボックス上に カーソルがあるとする)に文字列を書き込む 方法を教えてください。

  • テキストボックスの文字を右揃えにしましたらカーソルが

    こんぱんは。テキストボックスの文字を右揃えにしましたらカーソルが点滅しなくなりました。具体的には、 <input type='text' class='itiniti' maxlength='5' /> このようにしたものに、 .itiniti{width:50px; text-align:right; } で指定したのですが、右揃えにはなりましたが、そのテキストボックスをクリックしてもカーソルが出現しません。何か入力して、右端以外の文字をクリックしたらカーソルが出現しますが、→キーでカーソルを一番右側までもっていくとまた消えます。 text-alignがleftのときとcenterのときは正常に表示されています。 どなたか右揃えでカーソルがちゃんと表示されない理由がわかるかたいらっしゃいましたらアドバイスお願いいたします。 環境は、IE7です。

    • ベストアンサー
    • HTML
  • 画面を切り替えてもカーソルを表示させたい

    エクセルVBAです。 ユーザーフォームのテキストボックスでカーソルが点滅している状態で 例えばエクスプローラ等何でもいのですが、他の画面を表示したあと 再度ユーザーフォームを表示すると、フォーカスはそのテキストボックスに あるようなのですが、カーソルは消えています。 画面を切り替えてもカーソルが元の状態のままにするにはどうしらいいでしょうか。

  • ブラウザ上にカーソルが点滅してしまいます!Firefox

    テキストボックスがフォーカスを受け、カーソルが点滅するのは わかるのですが、ブラウザ上のどこでもクリックすればそこで カーソルが現れて点滅してしまいます。これはなぜなのでしょうか? 以前にはなかったと思うし、InternetExplorerでもこの現象は見られません。 Firefoxは2.0.0.3を使用しています。

  • TextBoxのカーソルを右端に移すには?

    ボタンを押すと、現在のフォーカスを持っているテキストボックスのテキスト挿入位置(カーソル)を最後の文字の後ろ(右端)に移すという動作をしたいのですがどのように書けばいいのでしょうか。 ※フォーカスを持つテキストボックスを参照するオブジェクト変数をActiveTextBoxとして宣言しているとします。環境は.NETです。

  • カーソルが消えてしまう

    OS:SP2, IE:IE6 を使っています。 IE上のテキストボックスに文字を入力して検索をしたいのですが、テキストボックス をクリックすると、カーソル(|縦棒)が一瞬出てその後消えてしまいます。何が原因なんでしょうか?

専門家に質問してみよう