javascript-包含非数字字符时,使用JS获取值
作者:互联网
This jsfiddle demonstrates the following issue.
最简单的示例是:
<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()方法给出了相同的结果.
解决方法:
这就是我想要的:
$('input[type=number]').keypress(function(e) {
if (!String.fromCharCode(e.keyCode).match(/[0-9\.]/)) {
return false;
}
});
我知道阻止用户输入会很烦人,但这仍然允许无效输入(例如1.2.3)
但是在这种情况下,这正是我所需要的.希望它对其他人有用.感谢@ int32_t的建议.
标签:textinput,javascript,html5 来源: https://codeday.me/bug/20191010/1887647.html