我希望创建一个输入框,只能输入自然数。(是的,我知道这可能不是最好的做法,因为用户无法获得任何反馈)。
如果输入的不是数字,则不应该出现在输入框中。
我想使用纯JavaScript(没有JQuery)。
通常情况下,我会这样做:
但我发现,在移动设备上更喜欢使用
通常情况下,我会这样做:
<input oninput="this.value = this.value.replace(/\D+/g, '')">
但我发现,在移动设备上更喜欢使用
<input type="number">
,因为它不显示整个键盘,而只显示数字。
所以我的问题是,如何将type="number"
与筛选相结合(并使其与剪切/复制/粘贴兼容)?
如果输入任何非数字字符,则<input type="number">
元素的值始终为一个空字符串。因此,我之前的筛选方法无法使用。有没有任何变通方法?
如果没有,我就必须监听keydown、paste、cut等许多事件。我需要考虑哪些事件,如何实现它,有没有我忽略的更简单的方法?
<input type="number" />
中缺少什么?这并不清楚 type="number" 有什么限制,用户不能在其中输入除数字以外的任何内容。 - mplungjan