有很多关于如何将光标准确放置在textarea中的位置的信息。它似乎都不适用于<input type="text">
字段。
基本上,当页面加载时,我有一个带有文本的输入字段,并且它是聚焦的。问题是光标位于预写文本的末尾。我需要它在一开始。或者,隐藏光标也没问题。实际上更好,但我不知道这是否可能。
理想情况下,这将在jQuery中完成,但常规JS也可以。
谢谢!
马拉
答案 0 :(得分:3)
这可以使用选择属性来完成:
$('#my-element-id').attr({
selectionStart : 0,
selectionEnd : 0
});
答案 1 :(得分:2)
不确定jQuery为乔丹的回答做了什么,但这个可能会更加跨浏览器:
function setSelectionRange(inputEl, selStart, selEnd) {
if (inputEl.setSelectionRange) {
inputEl.focus();
inputEl.setSelectionRange(selStart, selEnd);
} else if (inputEl.createTextRange) {
var range = inputEl.createTextRange();
range.collapse(true);
range.moveEnd('character', selEnd);
range.moveStart('character', selStart);
range.select();
}
}
如果你将它与jQuery结合使用,请使用它:
$(document).ready(function() {
$('input[type="text"]').each(function() {
setSelectionRange(this, 0, 0);
});
});
顺便说一下,这段代码完全没有经过测试。
编辑:在我看到您正在寻找输入元素之后更新了代码...