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

时间:2011-07-13 17:28:55

标签: javascript jquery

我有这个文本框:

<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 个答案:

答案 0 :(得分: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 });

答案 1 :(得分:0)

我使用这个小jquery插件: https://gist.github.com/DrPheltRight/1007907