$('#month').blur(function() {
var va = $("#month").attr("value");
if (va != "" && !/^\d+(.\d{1,2})?$/.test(va)) {
    window.alert('月份输入错误!');
    $("#month").focus(function(){
$("#month").val($("#month").val());
});
$("#month").focus();
    return false;
}
});上边的代码有问题
1.如果不谈出错误提示,代码没有问题,光标可以一直停留在右侧
2.弹出错误提示后,焦点是可以停留在文本框的右边的
3.问题在这,弹出错误提示后,光标停留在文本框文字的右侧,然后删除掉错误字符,光标离开,再将光标给文本框,这个时候焦点就自动跑到文本框最左侧去了改了半天,改不成功了

解决方案 »

  1.   

    你怎样设置的光标在右边?。。$("#month").focus();这样默认的应该是在左边。。
      

  2.   


    $('#month').blur(function() {
        var va = $("#month").val();
        if (va != "" && !/^\d+(.\d{1,2})?$/.test(va)) {
            window.alert('月份输入错误!');
            $("#month").css({"text-align":"right"}).focus().val(va);
            return false;
        }
    });
    这样写呢?
      

  3.   

    http://jsbin.com/icigul/edit#html,live
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset=utf-8 />
        <meta name="author" content="http://weibo.com/zswang" />
    <title>Demo 示例控制输入光标位置</title>
    <style>

    </style>
    </head>
    <body>
        <input id="editor" type="text" value="1234" />
        <input id="left" type="button" value="left" >
        <input id="right" type="button" value="right" >
    <script>
    void function(){
        function setSelection(editor, pos){
            if (editor.setSelectionRange){
                editor.focus();
                editor.setSelectionRange(pos, pos);
            } else if (editor.createTextRange){
                var textRange = editor.createTextRange();
                textRange.collapse(true);
                textRange.moveEnd("character", pos);
                textRange.moveStart("character", pos);
                textRange.select();
            }
        }
      
        var editor = document.getElementById('editor');
        document.getElementById('left').onclick = function(){
            setSelection(editor, 0);
        }
        document.getElementById('right').onclick = function(){
            setSelection(editor, editor.value.length);
        }
    }();
    </script>
    </body>
    </html>