Javascript 如何防止",;0“;在输入类型编号时作为第一个字符?
我想阻止0作为第一个字符。但当我再次聚焦和聚焦时,我在第一个中添加了“2”,它仍然运行,我想不应该运行 这是我的HTMLJavascript 如何防止",;0“;在输入类型编号时作为第一个字符?,javascript,jquery,html,keycode,Javascript,Jquery,Html,Keycode,我想阻止0作为第一个字符。但当我再次聚焦和聚焦时,我在第一个中添加了“2”,它仍然运行,我想不应该运行 这是我的HTML <input type="number" id="test"> 有人帮忙或建议我该怎么做吗?谢谢。将哪个属性与数字0的ASCII码进行比较,并返回false if (evt.which === 48) { return false; } 您可以使用input事件,该事件还处理粘贴的值,String.prototype.replace()替换为RegExp/
<input type="number" id="test">
有人帮忙或建议我该怎么做吗?谢谢。将
哪个属性与数字0
的ASCII码进行比较,并返回false
if (evt.which === 48) {
return false;
}
您可以使用input
事件,该事件还处理粘贴的值,String.prototype.replace()
替换为RegExp
/^0/
替换元素的.value
中找到的所有0
字符
$(“#测试”)。在(“输入”,函数()上{
如果(/^0/.test(此.value)){
this.value=this.value.replace(/^0/,“”)
}
})
试试看
你好,苏珊斯谢谢你的回答。对不起,我想澄清我的问题。您的答案被禁用,全部为“0”。我的意思是“0”只在第一个阶段被禁用。当我为下一次输入“0”时,它应该运行。我希望您理解我的问题,谢谢:)OP的代码是否已经与“0”进行了比较。charCodeAt(0)
检查?您是否试图阻止用户输入以“0”
开头的值?(因此不允许使用“02”
,但允许使用“20”
)因为如果是这样,您就不能通过测试当前按键来实现,因为用户可以键入“2”
,然后将光标移到它前面并键入“0”
。(他们也可以不使用键盘编辑字段,例如,通过粘贴或拖放)为什么不更改您得到的值?我想如果您解析(例如parseint)该值,前导零将被删除Hi@nnnn是的,我的意思是。Hi@guest271314这不是我的意思。因为我只需要数字,如果用户试图通过在中间输入零来编辑现有的值,这会给用户带来一种奇怪的用户体验,因为它将光标移动到字符串的末尾。此外,我认为OP希望允许零,只要它们不是第一个字符。@nnnnnn“此外,我认为OP希望允许零,只要它们不是第一个字符。”好的。见更新后的帖子。将^
添加到RegExp
的开头;最初解释为不允许输入0
字符的要求。这个问题似乎并没有表明只有0
的第一个字符是不允许的?@dediwibisono请参阅更新的帖子。将^
添加到RegExp
@guest271314-我想添加此编辑,但它不够长!在0之后添加+
以防粘贴多个零,如this.value=this.value.replace(/^0+/,“”)
如果已经有一些值,您可以在开头键入0(例如键入77,将插入符号移到开头,键入0)
if (evt.which === 48) {
return false;
}
$('#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;
}