代码之家  ›  专栏  ›  技术社区  ›  Erv Walter

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

  •  3
  • Erv Walter  · 技术社区  · 15 年前

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

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

    我在这里看到了这个建议:

    Set keyboard caret position in html textbox

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

    1 回复  |  直到 7 年前
        1
  •  5
  •   Matthew Crumley    15 年前

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

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

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