目前我的表单中有一个输入,我只限制数字输入,它不允许输入除整数之外的任何字符:
<input class="quantity" type="text" onkeypress="return (event.charCode == 8 || event.charCode == 0 || event.charCode == 13) ? null : event.charCode >= 48 && event.charCode <= 57">
&#13;
我想修改此onkeyup
代码,以便它还允许最多包含2位小数的数字。是否可以直接在内联onkeyup
函数中执行,还是需要在输入之外创建一个函数并调用它?我发现了一些类似的问题,但它们主要与事后验证输入有关,而我想限制人们甚至输入一个不是一个整数或一个小数位数为1或2的数字。
不幸的是,HTML5模式也不是一个选项,因为我必须支持那些不支持它的浏览器。
答案 0 :(得分:1)
onkeyup
事件触发,因此您必须在值更改之前限制用户。
使用type="number"
用户将无法输入十进制数以外的任何字符;通过使用min
和max
属性,浏览器会将输入标记为invalid
,但这并不会限制用户输入大于最大值的值。
在下面的示例中,我使用onkeypress
事件侦听器检查输入更改前输入的值,并检查当前值和新输入值的总和,以确保它小于100并且不允许用户输入任何值值大于99。
<input type="number" onkeypress="return (this.value + String.fromCharCode(event.which) > 99) ? false : true;" min="0" max="99">
链接到实例:JSFiddle