3

我有一个函数可以选择输入 onclick 的前 5 个字符。这适用于第一次点击。当输入框仍然具有焦点时,在 chrome 中,前 5 个字符内的第二次单击会删除选择,并且插入符号在单击的位置闪烁。

我希望前 5 个字符仍然/保持选中状态。

这似乎是一个 chrome 问题,因为它在 Firefox 中运行良好。

这是我的小提琴:http: //jsfiddle.net/valamas/3eaYq/2/

我怎样才能让它与 chrome 一起使用?

我尝试使用重置选择

sender.setSelectionRange(0, 1);
sender.setSelectionRange(0, 5);
4

1 回答 1

6

这确实是 Chromium 的一个问题(以及一个两年前的问题)。要使 Chrome 的行为与 Firefox 相同,只需将 的内容包装doSelect在一个setTimeout调用中:

function doSelect(sender, e) {
    setTimeout(function(){
        sender.setSelectionRange(0, 5);
    }, 0);
}

另请参阅:更新的 JS Fiddle


更新:该错误现在被标记为FIXED并将在 Chrome 39 中提供。

于 2012-08-21T02:36:50.510 回答