onkeypress
它的工作正常,但为什么onkeyup
无效?如何处理onkeyup
?
https://jsfiddle.net/btykt0nk/
function isNumber(number_check) {
number_check = (number_check) ? number_check : window.event;
var charCode = (number_check.which) ? number_check.which : number_check.keyCode;
console.log(charCode);
if (charCode > 31 && (charCode < 48 || charCode > 57)) {
return false;
}
return true;
}
<input type="text" onkeyup="return isNumber(event);">
答案 0 :(得分:0)
此处无需使用return
,您只需将功能附加到onkeyup
事件:
onkeyup="isNumber(event)"
function isNumber(event) {
event = (event) ? event : window.event;
var charCode = (event.which) ? event.which : event.keyCode;
//console.log(charCode);
if (charCode > 31 && (charCode < 48 || charCode > 57)) {
console.log(false);
}else{
console.log(true);
}
}
<input type="text" onkeyup="return isNumber(event);">
在您的函数中使用console.log(true)
和console.log(false)
来跟踪结果,因为return false
或return true
在这里不会有用。
修改强>
要使您的输入只接受数字,您可以使用event.preventDeafult()
以及onkeypress
事件,因为onkeyup
会在写完该字符后触发该函数,当它不是时,它会退出号:
function isNumber(event) {
event = (event) ? event : window.event;
var charCode = (event.which) ? event.which : event.keyCode;
//console.log(charCode);
if (charCode > 31 && (charCode < 48 || charCode > 57)) {
console.log(false);
event.preventDefault();
}else{
console.log(true);
}
}
<input type="text" onkeypress="isNumber(event);">
答案 1 :(得分:0)
我们应该在onkeypress处理它。
检查出来
<input type="text" onkeypress='return event.charCode >= 48 && event.charCode <= 57'>
</input>
答案 2 :(得分:-2)
尝试onkeyup =“isNumber(event)”(不返回)
更新你的小提琴
<input type="text" onkeyup="isNumber(event)">
https://jsfiddle.net/btykt0nk/1/