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

Erv*_*ter 3 html javascript

我的表单上有一些 input[type="text"] 文本框,它们有时不够宽,无法输入输入的内容。

目前,如果用户键入更多适合(但低于 maxlength)的文本,文本框将按预期滚动。当他们跳出文本框时,文本框会一直滚动到他们键入的内容的“结尾”。

当用户跳出该字段时,我试图找到一种将文本框重置为开头的方法。

我在这里查看了建议:

在 html 文本框中设置键盘插入符号位置

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

在我放弃之前,有没有人有任何解决方案可以在 onblur 事件中将光标重置到文本框的开头?

Mat*_*ley 5

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

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

我使用 jQuery 是因为这是我习惯的,但是您可以将其调整为用于事件的任何框架/方法。