输入输入类型编号时如何防止“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;
}
您可以使用 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;
}
我想防止 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;
}
您可以使用 input
事件,它也处理粘贴的值,String.prototype.replace()
和 RegExp
/^0/
替换在 [= 中找到的所有 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">
$('#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;
}