我有以下代码处理正常输入 - 它只允许数字而不是字母,符号或空格:
self.press = function (data, event) {
if (event.which == 0 || event.which == 32 || isNaN(String.fromCharCode(event.which))) {
event.preventDefault(); //stop character from entering input
} else if (event.which == 13 && self.search().length != 10) {
toastr.warning('number must be 10 characters');
event.preventDefault();
} else if (event.which == 13 && self.search().length == 10) {
// nav to /k/#
window.location.replace("/k/" + self.search());
}
return true;
};
但我可以在字段中粘贴字母和符号。如何从粘贴的内容中删除任何非数字?
答案 0 :(得分:1)
您可以使用输入字段的oninput
事件来监听内容的变化,并据此处理:
$("#field").on('input', function(v){
var val = $(this).val();
val = val.replace(/\D/g, '');
$(this).val(val);
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<input id="field" />
&#13;
注意:仅在IE 9及更高版本中支持oninput
事件。要支持旧版浏览器,您可以使用setInterval
重复检查输入内容,也可以尝试this shim。