防止光标在文本输入上移动

时间:2012-11-22 16:37:52

标签: html internet-explorer input

我有一些文本输入,当它们处于焦点时我称之为JS函数。基本上这个函数改变了这个字段的值哦。 当我这样做时,在IE上,光标移动到我的输入的左端。这在Firefox中不会发生。它只停留在我放在首位的地方。

<input maxlength="5"  type="text" onFocus=\"changeValueOnFocus(this);\">";

function changeValueOnFocus(myInput){
  myInput.value = 1234;
}

有没有办法避免这种情况? 谢谢!

2 个答案:

答案 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);

 }