網頁上按Enter變成Tab的效果-FF/Chrome相容
這算是個常被問到的問題。最簡單的就是透過設定 window.event.keyCode = 9,但是 FF/Chrome 不支援這種做法啊...
以下為 for IE 的版本:
document.onkeydown = function() {
if (window.event)
if (event.keyCode == 13 && event.srcElement.nodeName != "TEXTAREA" && event.srcElement.type != "submit")
event.keyCode = 9;
}
在網路上查了半天,好多種做法,最後我自己客製了以下的方式,以符合專案需求:
document.onkeydown = function() {
var evt = (event)?event:window.event;
var element=evt.srcElement || evt.target;
if (evt) {
if (evt.keyCode == 13 && element.nodeName != "TEXTAREA" && element.type != "submit") {
getNextElement(element).focus();
}
}
} ;
function getNextElement(sender){
var nextElmt = sender.nextSibling;
var i = 0;
try{
while (nextElmt.nodeName!="INPUT" && nextElmt.nodeName!="SELECT") {
nextElmt = nextElmt.nextSibling;
}
}catch (e){
return sender;
}
return nextElmt;
}
--------
沒什麼特別的~
不過是一些筆記而已