有没有办法在失去焦点时将光标重置到文本框的开头?

时间:2009-03-17 15:59:57

标签: javascript html

我的表单上有一些输入[type =“text”]文本框,有时候输入的内容不够广泛。

目前,如果用户键入更多适合(但在maxlength下)的文本,则文本框会按预期滚动。当它们从文本框中跳出时,文本框会保持滚动到它们键入的“结束”。

我正在尝试找到一种方法,当用户选中该字段时,将文本框重置为开头。

我看了一下这个建议:

Set keyboard caret position in html textbox

...但它在onblur事件中不起作用,因为解决方案实际上会导致文本框在再次模糊之前再次获得焦点,从而导致无限循环。

在我放弃之前,是否有人有任何解决办法将光标重置为onblur事件中文本框的开头?

1 个答案:

答案 0 :(得分:4)

在Internet Explorer中,您可以设置scrollLeft属性。这在Firefox中不起作用,但如果将值重置为自身,它将滚动回到开头。显然,这两种方法都适用于Chrome。我目前没有任何其他浏览器可供测试。

$("input[type=text]").blur(function() {
    this.value = this.value; // Firefox
    this.scrollLeft = 0; // Internet Explorer
});

我使用了jQuery,因为这是我习惯的,但你可以将它改编为你用于事件的任何框架/方法。