1

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

<!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>
4

2 回答 2

0

尝试这个

http://jsfiddle.net/DDQSU/2/

$(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);
                        })
                 })

解决方案已经存在 于 html 文本框中的 Set keyboard caret position

此问题与Javascript 重复,请避免光标在文本框末尾移动

于 2013-03-07T14:03:51.770 回答
0
<!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>

请注意我不知道如何用特定的正则表达式替换字符串。但是上面的代码只是用一个空字符串替换。您可以根据您的要求进行修改。

于 2013-03-07T13:00:42.173 回答