0

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

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

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

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

4

2 回答 2

2

onfocus不是 use 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" />

现在这应该是一个跨浏览器的解决方案。

于 2012-11-22T17:25:24.720 回答
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);

 }
于 2012-11-22T17:09:22.980 回答