我在页面中设置的输入框,假设maxlength="3",但是保存数据的时候,我必须保存成3位的,就是说假如我输入的是1,那么在经过处理后需要自动补齐为001,输入12,需要补齐为012,这个需要怎么控制?
最好有人能给我个示例我参考一下。
(我没分可以用了,所以分不多,见谅。。)

解决方案 »

  1.   

    <script type="text/javascript">
    function test(){
    var a=document.getElementById("mm");
    var b=parseInt(a.getAttribute("maxlength"));
    var c=a.value;
    var d=b-c.length;
    var e="";
    for(var i=0;i<d;i++){
    e+="0";
    }
    a.value=e+c;
    }
    </script>
    </head><body>
    <input type="text" maxlength="3" onblur="test()" id="mm">
    </body>
    这样试试
      

  2.   

    我觉得可以,再问一点啊,input框里面可以有onChange动作么?我想在输入完成之后,假如我输入1,然后光标跳出这个框去输入别的框的内容时,这个框就自动变成了001
      

  3.   

    function sFormat(i, s) {
    //i 返回的字符串位数,输入字符串s不足i位的用0填充
    var ar = s.split('');
    while (ar.length < i) ar.unshift('0');
    return ar.join('');
    }alert(sFormat(3, '1')); //001
    alert(sFormat(3, '12')); //012
    alert(sFormat(3, '123')); //123
      

  4.   


    <script type="text/javascript">
    //补零
    function sFormat(i, s) {
    //i 返回的字符串位数,输入字符串s不足i位的用0填充
    var ar = s.split('');
    while (ar.length < i) ar.unshift('0');
    return ar.join('');
    }
    </script>
    <input type="text" maxlength="3" name="demo" onchange="this.value = sFormat(3, this.value);" />
      

  5.   

    假如我输入1,然后光标跳出这个框去输入别的框的内容时,这个框就自动变成了001
    实现这个用blur(失去焦点)实现
      

  6.   


    我刚动手测了一下,就是我想要的效果,非常感谢。
    不过有些东西我不大明白,譬如 .split  .join   .unshift我就不大明白是啥意思(见谅,我是做嵌入式的,这些是为了做UI)。
    我得去查查。
      

  7.   


    <script type="text/javascript">
    //补零
    function sFormat(i, s) {
        //i 返回的字符串位数,输入字符串s不足i位的用0填充
        var ar = s.split('');
        while (ar.length < i) ar.unshift('0');
        return ar.join('');
    }
    </script>
    <input type="text" maxlength="3" name="demo" onblur="this.value = sFormat(3, this.value);" />
      

  8.   

    非常感谢啊,你的方法也可以,但是T5500的代码更简洁,因为我用的是CGI方法,所以我用他的方法了。
     共同学习哦~
      

  9.   


    split()是字符串对象的方法,把字符串用分隔符分割为一个数组;unshift()、join()都都数组对象的基本方法。
    http://www.w3school.com.cn/js/jsref_obj_array.asp
      

  10.   


    有个BUG,假如我输入的有空格的话。。前后有空格,或者中间有空格。得先把空格去掉。我还得去查查有什么函数是干这个的。
      

  11.   

    function sFormat(i, s) {
        //i 返回的字符串位数,输入字符串s不足i位的用0填充
        var ar_tmp = s.split(''), ar = [];
    for (x in ar_tmp) if (/[\d]+/.test(ar_tmp[x])) ar.push(ar_tmp[x]); //把非数字的字符全删掉
        while (ar.length < i) ar.unshift('0');
        return ar.join('');
    }
      

  12.   


    <script type="text/javascript">
    //补零
    String.prototype.Trim = function() 

    return this.replace(/(^\s*)|(\s*$)/g, ""); 
    } function sFormat(i, s) {
        //i 返回的字符串位数,输入字符串s不足i位的用0填充
        alert(s.Trim());
        var ar = s.Trim().split(' ');
         while (ar.length < i) ar.unshift('0');
        return ar.join('');
    }
    </script> 嘿嘿,我写成这样的了
    还是你的简洁~ 太感谢了~