javascript - 两个给定场景之间有什么区别?
问题描述
我在 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”、“-”、“+”、“。” ... .
这两者有什么区别?以及如何通过函数调用实现第一个场景?
解决方案
在第一个示例中,该onkeydown
函数有一个return
语句。
在第二个示例中,该函数onkeydown
没有语句return
。(它调用checkForNumber
并丢弃返回值)。
推荐阅读
- ios - 表视图中的可扩展视图
- python - 如何在 Django 的 DetailView 中获取特定类别的年月成本汇总?
- python - 矩阵求幂变得太慢
- javascript - 编码 discord bot 时 OR 逻辑处理器的问题
- c# - Microsoft 图形授权代码流 - 以编程方式从 Web 应用程序获取授权代码
- angular - 访问共享模块中的组件功能
- javascript - 对象解构与扩展运算符配对会在内存中创建新引用吗?
- azure-sql-data-warehouse - 重命名 Azure SQL Server 中所有对象中的表
- jquery - jQuery 函数没有被按钮的类触发
- ios - 如何在异步调用 SwfitUI 后加载初始屏幕