输入输入类型编号时如何防止“0”作为第一个字符?

How to prevent a "0" as the first character when typing in input type number?

我想防止 0 作为第一个字符。但是当我再次focusout和focusin时,然后我在第一个中添加“2”,它仍然是运行,我不应该运行。

这是我的 HTML

<input type="number" id="test">

我的JS

$('#test').keypress(function(evt) {
  if (evt.which == "0".charCodeAt(0) && $(this).val().trim() == "") {
  return false;
   }
});

有人帮助或建议我该怎么做吗?谢谢。

which属性与数字0的ASCII码进行比较,return为假。

if (evt.which === 48) {
  return false;
}

Check Fiddle

您可以使用 input 事件,它也处理粘贴的值,String.prototype.replace()RegExp /^0/ 替换在 [= 中找到的所有 0 个字符元素

的 17=]

$("#test").on("input", function() {
  if (/^0/.test(this.value)) {
    this.value = this.value.replace(/^0/, "")
  }
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js">
</script>
<input type="number" id="test">

$('#test').on("keypress",function (evt) {
   if (this.value.length == 1 && evt.which == 48 )
   {
      evt.preventDefault();
   }
});

尝试

  if (event.target.value.length == 0 && event.which == 48) {
  return false;
   }