我无法将文本输入上的模式属性限制为数字。根据javascript正则表达式列表,[d]或[0-9]应该这样做。但在
<input dir="ltr" type="text" title="Enter numbers only." pattern="[\d]{9}" id="uid" name="1" placeholder="Enter UID" required="'required'" class="required placeholder" minlength="9" maxlength="9" autocomplete="off" />
它对我不起作用(在任何浏览器中)。我必须添加 js 验证,如下所示(为简单起见,根据这篇文章决定走这条路线):
HTML:
onkeypress='return isNumberKey(event)'
js:
function isNumberKey(evt){
var charCode = (evt.which) ? evt.which : event.keyCode
if (charCode > 31 && (charCode < 48 || charCode > 57))
return false;
return true;
}
我主要想知道是否有办法让模式属性起作用。但也可以随意评论我是否为此使用最佳实践路线。我不想使用 HTML5 <input type="number"/>
,因为它还没有得到足够广泛的支持。