【问题标题】:Add leading zero to the value of text field if it is less that max length [duplicate]如果小于最大长度,则在文本字段的值中添加前导零 [重复]
【发布时间】:2018-08-29 17:34:32
【问题描述】:
<form>
<input type="text" maxlength="5" />
</form>

如果输入的位数少于字段的最大长度,我需要帮助将零添加到文本框值。例如:如果有人输入 1234,那么它应该添加一个零并将其设为 01234。同样,如果有人输入 12,那么当用户移出文本字段时,它应该将其设为 00012。我们还需要确保如果用户输入 00000,这不应该被接受为输入。

谢谢!

【问题讨论】:

  • 你试过了吗?

标签: javascript jquery


【解决方案1】:

使用slice 中的Array.prototype 类似下面的内容。

function myFunction(){
  s='00000'+document.getElementById("1").value;
  document.getElementById("1").value=s.slice(-5);
}
&lt;input id="1" style="border:1px solid red" type="text" maxlength="5" onfocusout="myFunction()"/&gt;

【讨论】:

    【解决方案2】:

    这可能是您正在寻找的:

    <!doctype html>
    <html lang="en">
    
    <head>
      <meta charset="UTF-8">
      <meta name="Keywords" content="">
      <meta name="Description" content="">
    </head>
    
    <body>
    
      <form>
        <input id="input" style="border:1px solid red" type="text" maxlength="5" onblur="while(this.value.length<parseInt(this.getAttribute('maxlength')))this.value='0'+this.value;" />
      </form>
    
    </body>
    
    </html>

    【讨论】:

      【解决方案3】:

      你可以使用这个有趣的技巧:

      (new Array(3 + 1)).join("0") // "000"
      

      input = document.getElementById("input");
      
      input.addEventListener("blur", function () {
        var n = this.value.length;
        var max = parseInt(this.getAttribute("maxlength"), 10);
        if (n < max) {
          var l = max - n + 1;
          var prefix = new Array(l).join("0");
          this.value = prefix + this.value;
        }
      });
      &lt;input id="input" type="text" maxlength="5"&gt;

      【讨论】:

        猜你喜欢
        • 2013-04-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-05-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-11-24
        相关资源
        最近更新 更多