2014-04-14 87 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