網頁上按Enter變成Tab的效果-FF/Chrome相容

  • 6165
  • 0
  • 2011-11-15

網頁上按Enter變成Tab的效果-FF/Chrome相容

Dotblogs 的標籤: , ,

這算是個常被問到的問題。最簡單的就是透過設定 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;
}

--------
沒什麼特別的~
不過是一些筆記而已