我想始终将光标设置到文本框(<input/>)
的开头。
我发现下面的代码完成了这项工作。但是,如果文本框(<input/>)
中已有文本,则首先在文本末尾设置光标,然后移动到开头。这导致不希望的跳跃效果。
有没有办法在没有这种跳跃效果的情况下始终将光标设置为乞讨?注意我在onFocus onClick中调用了下面的函数。
var range;
if (elem.createTextRange) {
range = elem.createTextRange();
range.move("character", 0);
range.select();
} else if (elem.selectionStart) {
elem.focus();
elem.setSelectionRange(0, 0);
}
答案 0 :(得分:0)
另一种选择,而不是自己完成所有操作都遵循jQuery插件:
http://code.google.com/p/rangyinputs
在这里可以找到一个很好的演示: http://rangyinputs.googlecode.com/svn/trunk/demos/textinputs_jquery.html
希望这为您的任务带来了新的亮点,请理解,如果没有一个plunker / jsfiddle,一个完美的解决方案现在超出了我的范围。
<强>更新强>
另一种方法是使用(如果你在html5上下文中)属性autofocus
。但是行为是,当渲染DOM并选择所有现有文本时,它会获得焦点。不知道你是否能忍受这个。
<input type="text" value="some text here" autofocus />
<强> UPDATE2 强>
http://plnkr.co/Wag8fb @OP:请拨打&amp;编辑它,它就像你的代码一样。因为我使用了粘贴在这里的所有代码,而且根本没用。