我正在使用<input type='text' onkeypress='return isNumberKey(event)'>
我尝试了<input type='number'>
,但这可以让人们使用句号和“#”。我只希望允许人们只使用非负整数。
理想情况下,我想这样做只有数字小键盘在Safari和Chrome中被拉起(我相信大多数移动用户只使用这两种浏览器)但我绝对会满足于只允许这样做按非负整数。
function isNumberKey(evt) {
var charCode = (evt.which) ? evt.which : event.keyCode;
if (charCode != 8 && (charCode < 48 || charCode > 57))
return false;
return true;
};
答案 0 :(得分:3)
您可以将pattern
属性与RegExp
\D
,input
事件,RegExp.prototype.test()
,String.prototype.slice()
与参数0, -1
一起使用如果不是与RegExp
属性
pattern
匹配的数字,请删除最后一个输入值
var input = document.querySelector("input");
function handleInput(event) {
var value = this.value;
if (new RegExp(this.pattern).test(value)) {
this.value = value.slice(0, -1)
}
}
input.addEventListener("input", handleInput);
&#13;
<input type="text" pattern="\D" />
&#13;