如果输入不是一个有效的数字,使用 <input type=number>将导致事件侦听器内的 this.value返回一个空字符串。您可以在 http://jsfiddle.net/fSy53/上看到这方面的一个例子
但是,无效字符仍然显示在输入中。
有没有办法从事件侦听器中获得实际上是 展示的值,包括无效字符?
我的最终目标是防止用户在字段中实际键入任何非数字字符。我需要使用 type=number,以便移动设备使用数字虚拟键盘。我的目标是在 keyup keypress上执行类似于 this.value = this.value.replace(/[^0-9.]/g, "")的操作,但这不起作用,因为如果输入了无效字符,从 this.value读取将返回 ""。