如何将光标移动到已有文本的文本框前面?

5

我有一个文本框:

<input type="text" name="url" id="url-input" />

并且这段代码:

var inputText = "Hello World";
$(document).ready(function() {
  $("#url-input").focus();
  $("#url-input").val(inputText);
});

目前光标在文本框中添加“Hello World”后显示在末尾(无论我何时添加焦点或更改值)。 如何将其移动到前面?

谢谢

编辑 - 这是jsFiddle链接:http://jsfiddle.net/dmRND/

2个回答

7
在现代浏览器中,您可以访问表示选择的selectionStartselectionEnd属性。当它们都为0时,表示没有选择任何内容,光标在开头:
$("#url-input").prop('selectionStart', 0)
               .prop('selectionEnd', 0);

http://jsfiddle.net/efek3/

jQuery的另一个特点是链式操作:$(...).func1().func2(),因此您只需要一次选择器。

jQuery的另一个特点是大多数函数支持对象作为参数,因此您也可以这样做:

$("#url-input").prop({ selectionStart: 0,
                       selectionEnd:   0 });

@Nick Brunt:这让我想起了这个答案:https://dev59.com/4nVC5IYBdhLWcg3wihmv#3373056。 - pimvdb

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接