日期:2014-05-16  浏览次数:20318 次

javascript单选框radio的tab禁用以及回车和tab键互换

<script type="text/javascript">
if(document.addEventListener){//如果是Firefox
	document.addEventListener("keypress",fireFoxHandler, true);
}else{
	document.attachEvent("onkeydown",ieHandler);
}

function fireFoxHandler(evt){
	alert("不支持火狐");
}

function ieHandler(evt){
	if(evt.keyCode=="9"){//如果是tab键
		evt.keyCode="0";//则禁用tab
		evt.returnValue=false;
		
		var act = document.activeElement.name;//获取焦点
		if(document.activeElement.type=="radio" && act!=undefined && act!=""){//如果焦点在单选框
			document.activeElement.hasFocus = true;
			var af = document.getElementsByName(act);
			for(var i=0; i<af.length; i++){
				var j = (i+1) % af.length;
				if(af[i].hasFocus == true){
					af[i].hasFocus = false;
					af[i].blur();
					af[j].focus();
				}
			}
		} else {//其他情况tab键不禁用
			evt.keyCode="9";
			evt.returnValue=true;
		}
	} else if(evt.keyCode=="13"){
		evt.keyCode="9";
	}
}

</script>