javascript里怎么聚焦到文本框文字后面去? 30
我用js控制文本框的聚焦问题但是focus后光标只聚焦到文字的最前面(IE)如何聚焦到文字的最后面呢?如:<inputtype="text"value="hereisth...
我用js控制文本框的聚焦问题
但是 focus 后光标只聚焦到文字的最前面(IE)
如何聚焦到文字的最后面呢?
如:
<input type="text" value="here is the test text" id="txta"/>
document.getElementById("txta").focus()的时候光标放在 text之后这么写?
代码越少越好啊。
下面可以实现,但是代码太长了。
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>新建网页 4</title>
</head>
<body>
<input type=text value="123" id="test" />
</body>
</html>
<script language="javascript">
function getSelectPos(obj){
var esrc = document.getElementById(obj);
if(esrc==null){
esrc=event.srcElement;
}
var rtextRange =esrc.createTextRange();
rtextRange.moveStart('character',esrc.value.length);
rtextRange.collapse(true);
rtextRange.select();
}
test.focus();
getSelectPos("test");
</script> 展开
但是 focus 后光标只聚焦到文字的最前面(IE)
如何聚焦到文字的最后面呢?
如:
<input type="text" value="here is the test text" id="txta"/>
document.getElementById("txta").focus()的时候光标放在 text之后这么写?
代码越少越好啊。
下面可以实现,但是代码太长了。
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>新建网页 4</title>
</head>
<body>
<input type=text value="123" id="test" />
</body>
</html>
<script language="javascript">
function getSelectPos(obj){
var esrc = document.getElementById(obj);
if(esrc==null){
esrc=event.srcElement;
}
var rtextRange =esrc.createTextRange();
rtextRange.moveStart('character',esrc.value.length);
rtextRange.collapse(true);
rtextRange.select();
}
test.focus();
getSelectPos("test");
</script> 展开
展开全部
我刚才测试了,除了刚进页面的时候聚焦光标是不在文字后面的其他的都在。我写了这样的代码,转换一下,获取下值,然后再赋值,光标自然就到文字后面了
<input type="text" value="一个">
<button>点击</button>
<script type="text/javascript">
$("button").click(function () {
var v = $("input").val();
$("input").focus().val(v);
})
</script>
<input type="text" value="一个">
<button>点击</button>
<script type="text/javascript">
$("button").click(function () {
var v = $("input").val();
$("input").focus().val(v);
})
</script>
展开全部
//////文本框获得焦点后,将光标定位到文本框里的字符串的末尾
////<INPUT TYPE="text" NAME="userName" VALUE="测试文字" ONFOCUS="setCaretAtEnd(this)">
function setCaretAtEnd(field)
{
if ( field.createTextRange )
{
var r = field.createTextRange();
r.moveStart('character', field.value.length);
r.collapse();
r.select();
////field.select();
}
}
////<INPUT TYPE="text" NAME="userName" VALUE="测试文字" ONFOCUS="setCaretAtEnd(this)">
function setCaretAtEnd(field)
{
if ( field.createTextRange )
{
var r = field.createTextRange();
r.moveStart('character', field.value.length);
r.collapse();
r.select();
////field.select();
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
没有好方法 我写的话也是按上面的来写 获取数据长度来控制
追问
没别的办法了啊?
追答
这个已经很简化了 你把这个方法封装到一个JS文件里面作为通用方法 以后调用只要调用方法名就好了 其他的我不知道还能如何操作得到你要的结果
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
<script language="javascript">
function cc()
{
var e = event.srcElement;
var r =e.createTextRange();
r.moveStart("character",e.value.length);
r.collapse(true);
r.select();
}
</script>
<input type=text name=text1 value="123" onfocus="cc()">
srcElement是ie的属性 要考虑兼容
function cc()
{
var e = event.srcElement;
var r =e.createTextRange();
r.moveStart("character",e.value.length);
r.collapse(true);
r.select();
}
</script>
<input type=text name=text1 value="123" onfocus="cc()">
srcElement是ie的属性 要考虑兼容
更多追问追答
追问
没有自动聚焦到文字后面啊。
追答
怎么会呢?我很负责任的告诉你可以,我测试过了,不过得在ie里.你单独拿出这段代码测试看看,有可能是其他代码有影响.
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询