JS,关于focus()定位焦点的问题。

document.getElementById('abc').focus()

abc是一个文本框,文本框里默认有值“大家好”。问题是,JS定位焦点后,光标是在行首“|大家好”,我想让光标定位在行尾“大家好|”,请问该如何做,谢谢。

var input = document.getElementById( "abc" );

    var val = input.value;

    input.focus();

    input.value = '';

    input.value = val;

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-07-16
document.getElementById('abc').focus(); //让abc获取焦点
var input = document.getElementById( "abc" );

var val = input.value; //将abc的值位置给val

input.value = "";//将abc的值设置为空

input.value = val;//重新给abc赋值(将保存在val里的值重新赋值给abc)这样光标就在最后了本回答被提问者采纳
第2个回答  2013-07-16
你的浏览器问题吧?你这种描述情况结果应该是 大家好处于全选状态。
第3个回答  2017-11-16
<input type="text" id="text" value="大家好">
<script type="text/javascript">
var text = document.getElementById('text');
var len = text.value.length;
text.focus();
text.setSelectionRange(len,len);
</script>
用html的setSelectionRange方法可以实现
第4个回答  2013-07-16
<input type="text" value="abcdefg123456789" onfocus="setFocus()">
function setFocus()
{
var obj = event.srcElement;
var txt =obj.createTextRange();
txt.moveStart('character',obj.value.length);
txt.collapse(true);
txt.select();
}