• ベストアンサー

JavaScriptでこれ出来ますか?

すでに文字列が入っているテキストボックスにfocus()を行い、 "I"の形の文字キャレットを文字列の最後に移動させたいのですが、 ただ単に document.getElementById("TextField").focus() などとすると、文字列の最初に文字キャレットがいってしまいます。 どのようにしたら文字列の最後に文字キャレットを移動させられ ますでしょうか?

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

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

focusしてから書き換えてみては? <script language="javascript"> function test(){ var tf=document.getElementById('TextField'); tf.focus(); tf.value=tf.value; } </script> <input type="text" id="TextField" value="hogehoge"> <input type="button" value="test" onClick="test()">

nihon_no_samurai
質問者

お礼

この方法でできました! ありがとうございます。

その他の回答 (1)

回答No.1

Opera9.21でのテスト結果ですので、他ブラウザでは挙動が違いますが、 ご質問の件、実現できました。 (1) select()メソッドで、テキストフィールド全体を選択状態にする (2) テキストフィールドの中身を書き換える (3) focus()メソッドで、テキストフィールドにフォーカスを合わせる の手順を行うと、 テキストフィールドの末尾にキャレットが移動するようです。 以下、そのソースです。 ---------- var textField = document.getElementById("TextField"); textField.select(); //(2) 適当な文字列として、文字列『0』を足した後、 // 元の文字列部分を取り出して、元に戻している textField.value += 0; textField.value = textField.value.substring(0, textField.value.length - 1); textField.focus(); ----------

nihon_no_samurai
質問者

補足

ありがとうございます! 試してみましたが、残念ながらIEでは出来ないようです・・・。

関連するQ&A

専門家に質問してみよう