2014-04-14 54 views
0

我只是无法理解这个函数的各个步骤,谁能解释它们?按下功能键javascript

function keypress(field,e,x) { 
    if (!e) { 
     var e = window.event; 
    } 

    if (e.keyCode) { 
     code = e.keyCode; 
    } 
    else if (e.which) { 
     code = e.which; 
    } 

    var character = String.fromCharCode(code); 
    console.log("Character" + character); 

    if (code == 13) { 
     box.focus(); 
    } 
} 
+0

如果按下Enter,请关注'casella2'。 –

+0

非常多的broser特定的测试。 e并不总是被定义的,这就是为什么你可以在浏览器中通过'windows.event'获得它。 'e.keyCode'和'e.which'也是Browserdependent。 'Sring-fromCharCode'函数接受keyCode并将实际的char返回给这个keyCode。然后它将该字符打印到控制台。当键码是13(意思是“输入”)时,casella2应该专注于 – Fuzzyma

回答

2
if (!e) { 
    var e = window.event; 
} 

如果E(事件变量)没有定义,将它设置为window.event。这可确保您在变量e中具有必要的数据。

if (e.keyCode) { 
    code = e.keyCode; 
} 
else if (e.which) { 
    code = e.which; 
} 

浏览器特定测试;一些浏览器(据我所知IE)使用e.wich,其他浏览器使用e.keyCode。这表明用户按下了哪个键。

var character = String.fromCharCode(code); 
console.log("Character" + character); 

将代码转换为字符。

if (code == 13) { 
    casella2.focus(); 
} 

检查是否按下了回车键,如果是,则casella2为焦点。

你可以找到不同keyCode的列表here

+0

完美!谢啦! – user3344186