我有<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;
}
问题是当我为输入分配值时,插入符号跳转到结尾。是否有可能阻止它 - 我希望它留在我最初点击的地方?
答案 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
中看到一个有效的例子如果您尝试使用键盘选择整个文本,这可能会导致奇怪的行为(选择将消失)。我相信你应该使关键代码限制更严格,以避免这种情况。