onkeyup事件不起作用

时间:2017-03-23 14:47:56

标签: javascript

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);">

3 个答案:

答案 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 falsereturn 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/