我在谷歌上搜索了很久,但是找到的所有解决方案都非常复杂和冗长。我需要的是将调查表中文本框的输入限制为仅数字。最快,最简洁的方法是什么?
(我使用HTML 4.01 strict和ECMAScript)
提前感谢您的帮助。
(我使用HTML 4.01 strict和ECMAScript)
提前感谢您的帮助。
最快的方法:
<input type="text" onkeyup="this.value = this.value.replace(/\D/g, '')">
这不会阻止人们使用鼠标粘贴内容,因此 onchange 和 onclick 也可能是必要的。
最清晰(或至少较为清晰的)方法是:
function forceNumeric() {
this.value = this.value.replace(/\D/g, '');
}
$('.numeric').keyup(forceNumeric).change(forceNumeric).click(forceNumeric);
如果您正在使用纯JS(我建议不要使用纯JS),请使用 element.addEventListener,或者使用 onkeyup、onchange 和 onclick。
。
<input type="tel">
使用type="tel"有两个好处:浏览器验证和在移动设备上显示数字键盘,提供更好的用户体验。
然后,一个简单的JS验证(jQuery示例):
$('[type=tel]').on('change', function(e) {
$(e.target).val($(e.target).val().replace(/[^0-9]/g, ''))
})
$('[type=tel]').on('keypress', function() {
return event.charCode >= 48 && event.charCode <= 57
})