编程语言
首页 > 编程语言> > javascript-包含非数字字符时,使用JS获取值

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