最简单的例子是:
<input id="number" type="number" value="1">
console.log(document.getElementById('number').value);
这将按预期记录 1。然而,这:
<input id="number" type="number" value="1A">
console.log(document.getElementById('number').value);
只记录一个空字符串'',因为值中的非数字字符。某些设备+浏览器(例如 Chrome)允许您在这些输入中输入非数字字符。
这很烦人,因为我想要支持它的设备(例如 iPhone、iPad 数字键盘)的 type="number" 输入。但是我想使用 javascript 来阻止输入脏输入 - 这需要获取 keyup 上的值 - 然后正则表达式替换非数字字符。
看来 jQuery 的 .val() 方法给出了相同的结果。