如果文本字段的值小于最大长度,则将前导零添加到文本字段的值

时间:2018-03-20 18:52:07

标签: javascript jquery

<form>
<input type="text" maxlength="5" />
</form>

如果输入的数字少于字段的最大长度,我需要帮助在文本框值中添加零。例如:如果有人输入1234,那么它应该为它添加零并使其成为01234.如果有人输入12,那么当用户移出文本字段时它应该使其成为00012。我们还需要确保如果用户输入00000,则不应接受此输入。

谢谢!

3 个答案:

答案 0 :(得分:0)

这可能就是你要找的东西:

&#13;
&#13;
<!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>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

使用slice Array.prototype之类的内容。

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

答案 2 :(得分:0)

你可以使用这个有趣的伎俩:

(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;
  }
});
<input id="input" type="text" maxlength="5">