<SCRIPT language="JavaScript">
<!--
//回车将焦点移植下一个input控件
function focusNext(){
if(window.event.keyCode!=13)
return; //终止冒泡处理
event.cancelBubble=true;
event.keyCode='0'; //只有在input中输入的回车才会处理
if(event.srcElement.tagName.toLowerCase() != "input")
return ;
var fieldObject = event.srcElement; //得到所有表单对象
//concat连接后数组竟然是二维,吐血,只好自己写了 :(
var eles = new Array();
var forms = document.forms;
for(var i=0; i<forms.length; i++)
for(var j=0; j<forms[i].elements.length; j++)
eles[eles.length] = forms[i].elements[j]; for(var i=0; i<eles.length; i++)
//找到发出事件的表单对象
if(eles[i] == fieldObject)
for (var j=i+1; j<eles.length; j++){
//找到下一个可用input,focus
if(eles[j].tagName.toLowerCase() != "input")
continue;
if (eles[j].type != 'hidden' && eles[j].disabled != true && eles[j].readOnly != true){
eles[j].focus();
return ;
}
}
}
!-->
</SCRIPT><html>
<body onkeydown=focusNext();><form>
<select/><br>
<input name="0"/><br>
<input name="1" value="1"><br>
<input type="hidden"><br>
<input name="2"><br>
<select/><br>
<input type="hidden" name="3"><br>
<input name="4" disabled><br>
</form><form>
<select/><br>
<input name="5"/><br>
<input name="6" readOnly><br>
<input name="7" type="hidden"><br>
<input name="8"><br>
<input name="9" type="hidden"><br>
<input name="10"><br>
</form></body>
</html>
<!--
//回车将焦点移植下一个input控件
function focusNext(){
if(window.event.keyCode!=13)
return; //终止冒泡处理
event.cancelBubble=true;
event.keyCode='0'; //只有在input中输入的回车才会处理
if(event.srcElement.tagName.toLowerCase() != "input")
return ;
var fieldObject = event.srcElement; //得到所有表单对象
//concat连接后数组竟然是二维,吐血,只好自己写了 :(
var eles = new Array();
var forms = document.forms;
for(var i=0; i<forms.length; i++)
for(var j=0; j<forms[i].elements.length; j++)
eles[eles.length] = forms[i].elements[j]; for(var i=0; i<eles.length; i++)
//找到发出事件的表单对象
if(eles[i] == fieldObject)
for (var j=i+1; j<eles.length; j++){
//找到下一个可用input,focus
if(eles[j].tagName.toLowerCase() != "input")
continue;
if (eles[j].type != 'hidden' && eles[j].disabled != true && eles[j].readOnly != true){
eles[j].focus();
return ;
}
}
}
!-->
</SCRIPT><html>
<body onkeydown=focusNext();><form>
<select/><br>
<input name="0"/><br>
<input name="1" value="1"><br>
<input type="hidden"><br>
<input name="2"><br>
<select/><br>
<input type="hidden" name="3"><br>
<input name="4" disabled><br>
</form><form>
<select/><br>
<input name="5"/><br>
<input name="6" readOnly><br>
<input name="7" type="hidden"><br>
<input name="8"><br>
<input name="9" type="hidden"><br>
<input name="10"><br>
</form></body>
</html>
<input type=text onkeydown="if(event.keyCode==13)event.keyCode=9"><br>
<input type=text onkeydown="if(event.keyCode==13)event.keyCode=9"><br>
<input type=text onkeydown="if(event.keyCode==13)event.keyCode=9"><br>
<input type=text>
<p>
<input onkeydown="t()">
<input onkeydown="t()">
<input onkeydown="t()">
<script>
function t()
{
if(event.keyCode==13) event.keyCode=9
}
</script>
{
var e = document.activeElement;
if(e.tagName == "INPUT" && (
e.type == "text" ||
e.type == "password" ||
e.type == "checkbox" ||
e.type == "radio") ||
e.tagName == "SELECT"
)
{
if(window.event.keyCode == 13)
{
window.event.keyCode = 9;
}
}
}wsyab(瘦瘦男--炒饭) 请不要在技术论坛里进行人身攻击, 大家友好地交流技术!!
鄙视你鄙视别人,呵呵
鄙视你不分text/button!!
To:meizz(梅花雪疏影横斜)
代码写的比我简洁多了 :)
不过将enter换成tab此方法应该不会出现这问题.
一个是单独在input标签里定义,可以做到自由取舍,有时页面里不是所有的表单都需要这么处理的。
所以不能简单说谁的方法就更好,更无须鄙视了,这不是学习的态度。
function func_key_down()
{
var src_obj = window.event.srcElement;
if (window.event.keyCode == 13)
{
if (src_obj.type != "submit"
&& src_obj.type != "button"
&& src_obj.type != "reset"
&& src_obj.type != "image"
&& src_obj.tagName != "A"
&& src_obj.tagName != "TEXTAREA")
{
window.event.keyCode = 9;
}
}
}
window.document.onkeydown = func_key_down;