アプリ版:「スタンプのみでお礼する」機能のリリースについて

すでに文字列が入っているテキストボックスにfocus()を行い、
"I"の形の文字キャレットを文字列の最後に移動させたいのですが、

ただ単に
document.getElementById("TextField").focus()
などとすると、文字列の最初に文字キャレットがいってしまいます。

どのようにしたら文字列の最後に文字キャレットを移動させられ
ますでしょうか?

A 回答 (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()">
    • good
    • 0
この回答へのお礼

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

お礼日時:2007/06/29 18:37

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();
----------

この回答への補足

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

補足日時:2007/06/13 18:02
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!