我有一个固定宽度的文本类型输入。如果用户要在此字段中输入长值,我希望在输入不再具有焦点时显示值的开头。
FF 和 IE 中的默认行为使字段值的视图处于相同状态。另一方面,Chrome 似乎表现得如我所愿,它显示了值的开始。
我试图通过 textRange 对象的 Select() 方法重置 IE 中的插入符号位置,但这似乎重新调用了导致递归链的模糊事件(不知道为什么,但这是一个单独的问题)。
有没有人有什么建议?必须有一个简单的方法来做到这一点?
我有一个固定宽度的文本类型输入。如果用户要在此字段中输入长值,我希望在输入不再具有焦点时显示值的开头。
FF 和 IE 中的默认行为使字段值的视图处于相同状态。另一方面,Chrome 似乎表现得如我所愿,它显示了值的开始。
我试图通过 textRange 对象的 Select() 方法重置 IE 中的插入符号位置,但这似乎重新调用了导致递归链的模糊事件(不知道为什么,但这是一个单独的问题)。
有没有人有什么建议?必须有一个简单的方法来做到这一点?
我将这段代码组装在一起,它适用于 IE8。setTimeout
1ms 是因为如果文本框的值连续设置两次(令人惊讶),IE 会自动显示第二个值:
function resetPosition(element){
var v = element.value;
element.value="";
setTimeout(function(){element.value = v;},1);
}
还在 IE7 上进行了测试,并且在 Chrome 上不显眼(它会自动执行)。
你可以打电话
element.setSelectionRange(0, 0)
来设置位置。