在分配值时是否可以防止输入中的插入符号跳到最后?

时间:2014-07-02 14:50:11

标签: javascript html input

我有<input>

<input type="text" onKeyUp="if(!(event.keyCode>36&&event.keyCode<41)){this.value=check(this.value)}">

并采取行动:

function check(num){
    num=num.replace(/num/g,"Nº");
    return num;
}

JSFIDDLE

问题是当我为输入分配值时,插入符号跳转到结尾。是否有可能阻止它 - 我希望它留在我最初点击的地方?

1 个答案:

答案 0 :(得分:2)

不是JavaScript忍者,所以我不知道这是否是正确的方法,但您可以在更换值后更新插入位置

在此示例中,check函数将输入作为参数:

function check(num) {
    var selectionStart = num.selectionStart;    
    num.value = num.value.replace(/num/g,"Nº");
    num.selectionStart = selectionStart;
    num.selectionEnd = selectionStart;
}

您可以在this JSFiddle

中看到一个有效的例子

如果您尝试使用键盘选择整个文本,这可能会导致奇怪的行为(选择将消失)。我相信你应该使关键代码限制更严格,以避免这种情况。