通过JavaScript将光标放在输入文本元素中文本末尾的最佳方法(我假设最简单的方法)是什么?在焦点设置为元素之后?
当我的网站显示混有数字的希伯来语文本,并且中间有一个带短划线的数字时,中间的短划线数字显示为RTL.例如,对于文本:
??? 4–0,它应该显示4-0而不是0-4,因为它是数字序列,并且'4'在'0'之前.但是,在我检查的浏览器上,它在'4'之前显示'0'.
由于可能会出现系统数据中的任何位置,因此最好使用不需要以下内容的CSS解决方案:
<span style="direction:ltr">4-0</span>
Run Code Online (Sandbox Code Playgroud)
文本的一般方向应保持RTL,但带有破折号的数字应显示为LTR.应该在主要浏览器(IE,Firefox,Chrome)上正确显示.
我遇到的问题是,给定一个输出元素的maxlength比元素的宽度宽(在其样式中设置),并且,如果给定的值比元素的宽度宽,我怎样才能获得元素"滚动"到文本的末尾.在IE中它很简单,我创建一个textRange对象,将其开始和结束位置放在文本的末尾,在该范围内调用select,然后将光标放在文本的末尾并将文本移动到结束了.在Firefox,Chrome,Safari中,尝试使用input元素的setSelectionRange将光标设置在正确的位置,但是文本没有移动以便我看到它的结束,而是开始.有没有人知道我可以将光标放在文本的末尾并移动文本以便我可以看到光标?
谢谢!
巴蒂尔
<html>
<head>
<title>input cursor position</title>
<script language='javascript'>
function setCursor()
{
var objInput = document.getElementById( 'testinputbox' );
var nLength = objInput.value.length;
objInput.focus();
objInput.setSelectionRange( nLength, nLength );
}
</script>
</head>
<body onload='setCursor();'>
<input id='testinputbox' maxlength='200' value='some very very very very very long text' style='width: 100px;'></input>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)