我正在尝试检测输入密钥。这是我的代码。
HTML
<input name="txtTest" type="text" id="txtTest" onkeyup="CheckKey()"/>
的Javascript
function CheckKey()
{
var e = window.event;
var code = e.keyCode ? e.keyCode : e.which;
if(code === 13)
{
alert("You press Enter key.");
}
}
此代码适用于其他浏览器,但不适用于Firefox?为什么? 这是jsFiddle
请仅使用javascript提供答案。
答案 0 :(得分:9)
我相信你必须将event
对象传递给处理程序:
<input name="txtTest" type="text" id="txtTest" onkeyup="CheckKey(event)"/>
<!-- passes event object ^ -->
function CheckKey(e) //receives event object as parameter
{
var code = e.keyCode ? e.keyCode : e.which;
if(code === 13)
{
alert("You press Enter key.");
}
}
答案 1 :(得分:1)
您应该将JavaScript代码与HTML分开。
尝试这样的方法 - 密钥应该适用于所有浏览器:
<input type="text" id="txtTest" onkeyup="CheckKey(e)"/>
function CheckKey(e) {
var key = e.charCode ? e.charCode : e.keyCode ? e.keyCode : 0;
if(key === 13)
{
alert("You press Enter key.");
}
}
或者按照jQuery的建议(从HTML中分离的JavaScript代码) - 使用event.which:
<!--HTML file e.g. index.html-->
<input type="text" id="txtTest" />
//JavaScript file e.g. script.js - you have to include that script in your HTML file
$(function(){
$('#txtTest').on('keyup', function(e){
if(e.which === 13)
{
alert("You press Enter key.");
}
});
});
答案 2 :(得分:0)
使用event.key
代替event.keyCode
!
function CheckKey(event) {
if (event.key === "Enter") {
// Do something
}
};