使用javascript键入时如何避免光标向后移动

使用javascript键入时如何避免光标向后移动,javascript,Javascript,在文本框中输入值时,当我在输入值之间输入值时,光标会自动移动到值的末尾 <!DOCTYPE html> <html> <body> <script> function truncate(x) { if(x.value.length > 0) { x.value = x.value.replac

在文本框中输入值时,当我在输入值之间输入值时,光标会自动移动到值的末尾

<!DOCTYPE html>
<html>
    <body>
        <script>
        function truncate(x) {
            if(x.value.length > 0) 
            {               
                x.value = x.value.replace(/^\s+/, '');
            }
        }
        </script>

        <input id="otherText" onkeyup="javascript:truncate(this);" maxlength="12" type="text"/>

    </body>
</html>

函数截断(x){
如果(x.value.length>0)
{               
x、 value=x.value.replace(/^\s+/,“”);
}
}

函数截断(x){
var val=document.getElementById(“其他文本”);
var INPUTEXTVALUE=val.value;
如果(InputExtValue.length>0)
{ 
val.value='';
}
}
请注意,我不知道如何用特定的正则表达式替换字符串。但是上面的代码只是替换为一个空字符串。您可以根据需要进行修改。

试试这个

解决方案已经在那里了


此问题重复了

否,它将所有值替换为空,因此我们无法使用此问题的可能重复项;我想还有更多类似的,但我找不到
<!DOCTYPE html>
<html>
<body>



<script>
function truncate(x){
var val = document.getElementById("otherText");

var inputTextValue = val.value;
if(inputTextValue.length>0) 
    { 

    val.value = '';

}
}
</script>
<input id="otherText" onkeyup="javascript:truncate(this);"   maxlength="12" type="text"/> </body>
</html>
$(function() {

    function setCaretPosition(elemId, caretPos) {
        var elem = elemId
        if(elem != null) {
        if(elem.createTextRange) {
           var range = elem.createTextRange();
           range.move('character', caretPos);
           range.select();
        }
        else {
           if(elem.selectionStart) {
              elem.focus();
              elem.setSelectionRange(caretPos, caretPos);
           }
           else
              elem.focus();
        }
    }
}

$("#otherText").on("keyup", function(event){
                            var x = this,sel=x.selectionStart;
                            if(x.value.length > 0) 
                            {               
                                x.value = x.value.replace(/^\s+/g, '');
                            }
                            setCaretPosition(x,sel);
                        })
                 })