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

时间:2016-12-06 01:55:54

标签: javascript jquery html html5 keycode

我想阻止0作为第一个字符。但是当我再次聚焦并专注时,我在第一个中添加“2”,它仍在运行,我想不应该运行。

这是我的HTML

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

我的JS

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

有人帮忙或建议我该怎么办?谢谢。

4 个答案:

答案 0 :(得分:3)

您可以使用input事件处理粘贴的值String.prototype.replace()RegExp /^0/来替换0中找到的所有.value字符元素

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

答案 1 :(得分:1)

which属性与数字0的ASCII代码进行比较,并返回false。

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

<强> Check Fiddle

答案 2 :(得分:0)

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

答案 3 :(得分:0)

尝试

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