我有一些文本输入,当它们处于焦点时我称之为JS函数。基本上这个函数改变了这个字段的值哦。 当我这样做时,在IE上,光标移动到我的输入的左端。这在Firefox中不会发生。它只停留在我放在首位的地方。
<input maxlength="5" type="text" onFocus=\"changeValueOnFocus(this);\">";
function changeValueOnFocus(myInput){
myInput.value = 1234;
}
有没有办法避免这种情况? 谢谢!
答案 0 :(得分:2)
而不是onfocus
而不是onfocusin
,这将使您的代码正常工作。
修改强>
我刚才意识到,Firefox中没有focusin
。因此,你需要更重的东西。
剧本:
function changeValueOnFocus (e, elm) {
elm = elm || this;
elm.value = 1234;
return;
}
window.onload = function () {
if (window.onfocusin === undefined) {
document.getElementById('someinput').addEventListener('focus', changeValueOnFocus, false);
}
return;
}
对于input
,您需要id
:
<input id="someinput" maxlength="5" onfocusin="changeValueOnFocus(event, this);" type="text" />
现在这应该是一个跨浏览器的解决方案。
答案 1 :(得分:1)
将光标移动到文本框的末尾 像这样修改你的功能:
function changeValueOnFocus(myInput) {
myInput.value = 1234;
//use this function to select text but in this case just to move cursor to the end
myInput.setSelectionRange(myInput.value.length, myInput.value.length);
}