我在表单中使用input type="number"
。我触发onchange
事件以获取其值。
但是当我写'2a'它说价值是空的。所以我甚至不能用parseInt()
来获得' 2'整数,我想要的。
当然,它与input type="text"
一起使用,但我还想使用数字类型的min max属性来简化表单验证。这有什么解决方案吗?
答案 0 :(得分:0)
您可以使用change
代替document.querySelector('input').addEventListener('keydown', function(e) {
var char = e.key || String.fromCharCode(e.keyCode) || String.fromCharCode(e.charCode);
if (!/[0-9]/.test(char)) {
e.preventDefault();
}
});
来执行此操作:
<input type="number" min="0" max="100" placeholder="Insert a number">
&#13;
static
&#13;
答案 1 :(得分:0)
输入元素的类型数并不意味着你不能在其中写入其他类型的字符,只是为了使包含输入的表单元素在html上下文中有效或无效,我建议使用正则表达式或字符检查在链接到输入中的onkeydown事件的javascript函数中,您可以使用该函数绝对控制您可以在该输入中插入或不插入的字符。如果您使用框架javascript,有一些功能可以帮助您,在其他情况下,您可以在一个小的JavaScript函数中自己编程。 例如,这是整数/小数的正则表达式,允许正数和负数。
NavigationController