我正在使用以下代码来检查是否在文本框中按了回车键但我得到了 类型错误 TypeError:e未定义
<html lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<title>demo</title>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script>
function memSort(e){
if(e.keyCode === 13){
alert("Enter was pressed ");
}
}
</script>
</head>
<body>
<div class="searchBox">
<div class="keyname">Keyword : </div>
<input name="usersearch" id="usersearch" type="text" value="" onKeydown="memSort();"/>
<div id="listOrders"></div>
</div>
</body>
</html>
答案 0 :(得分:4)
您需要在调用JavaScript函数时传递event
对象,如下所示:
<input name="usersearch" id="usersearch" type="text" value="" onKeydown="memSort(event);"/>
在jQuery中很简单,无需从输入调用:
$('#usersearch').keydown(function(e){
if(e.keyCode === 13){
alert("Enter was pressed ");
}
});
答案 1 :(得分:1)
我看到你在代码中使用了jQuery。那么为什么不利用相同的东西进行不引人注目的事件处理。
$("usersearch").on("keydown", function(e) {
if(e.keyCode === 13){
...
}
});
或者如果只是使用Javascript,则传递事件对象参数:
onkeypress="memSort(event);"
但是,应该避免使用内联处理程序。
答案 2 :(得分:1)
试试这个
<input name="usersearch" id="usersearch" type="text" value="" onkeypress="memSort(event);"/>
function memSort(e){
var key=e.keyCode || e.which;
if (key==13){
alert("Enter was pressed ");
}
}
答案 3 :(得分:1)
调用函数时,必须传递event
对象。
试试这个:
HTML代码
<div class="searchBox">
<div class="keyname">Keyword : </div>
<input name="usersearch" id="usersearch" type="text" value="" onKeydown="memSort(event);"/>
<div id="listOrders"></div>
</div>
“TypeError:e未定义” - 说明:
请注意html代码:onKeydown =“memSort(event);
在这里,我将事件对象event
作为函数参数传递。但是在你的代码中你错过了这个。当你没有传递参数时,它引用为undefined
。 (如果你没有通过该事件,那么你将无法获得e.keyCode
。)因此,你必须传递事件对象。