3

我有一个固定宽度的文本类型输入。如果用户要在此字段中输入长值,我希望在输入不再具有焦点时显示值的开头。

FF 和 IE 中的默认行为使字段值的视图处于相同状态。另一方面,Chrome 似乎表现得如我所愿,它显示了值的开始。

我试图通过 textRange 对象的 Select() 方法重置 IE 中的插入符号位置,但这似乎重新调用了导致递归链的模糊事件(不知道为什么,但这是一个单独的问题)。

有没有人有什么建议?必须有一个简单的方法来做到这一点?

4

2 回答 2

3

我将这段代码组装在一起,它适用于 IE8。setTimeout1ms 是因为如果文本框的值连续设置两次(令人惊讶),IE 会自动显示第二个值:

function resetPosition(element){
    var v = element.value;
    element.value="";
    setTimeout(function(){element.value = v;},1);
}

还在 IE7 上进行了测试,并且在 Chrome 上不显眼(它会自动执行)。

于 2010-07-25T14:48:24.003 回答
0

你可以打电话 element.setSelectionRange(0, 0)来设置位置。

于 2018-10-25T15:34:37.283 回答