首页 > 解决方案 > 两个给定场景之间有什么区别?

问题描述

我在 html 和 Javascript 中有一段代码,有两种不同的场景:

<!DOCTYPE html>
<html>
<body>

<input type="number" onkeydown="javascript: return event.keyCode === 8 || event.keyCode === 46 ? true : !isNaN(Number(event.key))" />

<input type="number" onkeydown="checkForNumber(event)" />

</form>


</body>

<script>
  function checkForNumber(event) {

    if (event.keyCode === 8 || event.keyCode === 46 ) {

      return true;
    } else {
      return !isNaN(Number(event.key));
    }

  }
</script>
</html>

第一种输入类型按需要工作,即它只允许数值。但是,当我将 onkeydown 东西移到一个函数中,然后试图调用它没有按预期工作时,即它允许我输入一些字符,如“e”、“-”、“+”、“。” ... .
这两者有什么区别?以及如何通过函数调用实现第一个场景?

标签: javascripthtmlangulardom-events

解决方案


在第一个示例中,该onkeydown函数有一个return语句。

在第二个示例中,该函数onkeydown没有语句return。(它调用checkForNumber并丢弃返回值)。


推荐阅读