jquery 如何防止在键入输入类型数字时将“0”作为第一个字符?

qlckcl4x  于 2023-02-03  发布在  jQuery
关注(0)|答案(5)|浏览(183)

我想防止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;
   }
});

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

izj3ouym

izj3ouym1#

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

$("#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">
tp5buhyn

tp5buhyn2#

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

if (evt.which === 48) {
  return false;
}
    • 一个
xvw2m8pv

xvw2m8pv3#

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

hs1rzwqc4#

试试看

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

twh00eeo5#

您可以使用--〉event. target. value从第一个字符开始为块“0”添加条件。以下是从第一个字符开始为块“0”添加条件的代码。

Javascript语言.

const handleOnchange =()=>{
       if(event.target.name === "myEvent"){
         event.target.value === event.targe.value.replace(/^0/, "");
      }
    }

HTML格式

<input type="number" name="myEvent" id="myEvent" onChange={handleOnchange} />

相关问题