我的表单上有一些输入[type =“text”]文本框,有时候输入的内容不够广泛。
目前,如果用户键入更多适合(但在maxlength下)的文本,则文本框会按预期滚动。当它们从文本框中跳出时,文本框会保持滚动到它们键入的“结束”。
我正在尝试找到一种方法,当用户选中该字段时,将文本框重置为开头。
我看了一下这个建议:
Set keyboard caret position in html textbox
...但它在onblur事件中不起作用,因为解决方案实际上会导致文本框在再次模糊之前再次获得焦点,从而导致无限循环。
在我放弃之前,是否有人有任何解决办法将光标重置为onblur事件中文本框的开头?
答案 0 :(得分:4)
在Internet Explorer中,您可以设置scrollLeft属性。这在Firefox中不起作用,但如果将值重置为自身,它将滚动回到开头。显然,这两种方法都适用于Chrome。我目前没有任何其他浏览器可供测试。
$("input[type=text]").blur(function() {
this.value = this.value; // Firefox
this.scrollLeft = 0; // Internet Explorer
});
我使用了jQuery,因为这是我习惯的,但你可以将它改编为你用于事件的任何框架/方法。