JavaScript学习笔记1---焦点定位在页面表单第一个字段

来源:互联网 发布:软件开发的过程 编辑:程序博客网 时间:2024/04/30 16:33

当我们希望一打开某个页面,焦点能够停留在第一个控件上的时候,可以写个简单的脚本,
然后放到onload事件处理函数中,比如说下面的一段代码:

 

<html>
<head>
<title>用户注册</title>
</head>
<body onload="document.forms[0].elements[0].focus()">
<form name="form1">
用 户 名:
<input type="text" name="txtName" size="20" /><br />
密    码:
<input type="password" name="txtPassword" size="20" /><br />
确认密码:
<input type="password" name="txtRePassword" size="20" /><br />
电子信箱:
<input type="text" name="txtEmail" size="20" /><br />
<input type="submit" name="submitForm1" value="注 册" /><br />
</form>
</html> 

 

当用户打开页面,焦点是可以定位在第一个字段的。document.forms[0].elements[0].focus()
表示把光标定位在页面上第一个表单的第一个元素上,如上例,就是txtName字段。
但是考虑一下下面的这段代码:

 

<html>
<head>
<title>用户注册</title>
</head>
<body onload="document.forms[0].elements[0].focus()">
<form name="form1">
<input type="hidden" name="txtID" value="123456" /><br />
用 户 名:
<input type="text" name="txtName" size="20" /><br />
密    码:
<input type="password" name="txtPassword" size="20" /><br />
确认密码:
<input type="password" name="txtRePassword" size="20" /><br />
电子信箱:
<input type="text" name="txtEmail" size="20" /><br />
<input type="submit" name="submitForm1" value="注 册" /><br />
</form>
</html> 

 

表单form1的第一个字段是隐藏字段,这个字段是不支持focus()方法的。在这种情况下,将
会出现JavaScript错误。并且这个时候我们也不是想把光标定位在那个不可见的字段上。这
里的关键是把焦点定位在第一个可见的表单字段上,可以写个处理的方法:

 

<html>
<head>
<title>用户注册</title>
<script type="text/javascript">
//焦点定位在表单第一个可见字段的方法
function focusOnFirst(){
//检测页面是否存在表单
if(document.forms.length>0){
   
for(var i=0;i<document.forms[0].elements.length;i++){
       
var oField=document.forms[0].elements[i];
       
if(oField.type!="hidden"){
          oField.focus();
          
return;
        } 
   }
}
}
</script>
</head>
<body onload="focusOnFirst()">
<form name="form1">
<input type="hidden" name="txtID" value="123456" /><br />
用 户 名:
<input type="text" name="txtName" size="20" /><br />
密    码:
<input type="password" name="txtPassword" size="20" /><br />
确认密码:
<input type="password" name="txtRePassword" size="20" /><br />
电子信箱:
<input type="text" name="txtEmail" size="20" /><br />
<input type="submit" name="submitForm1" value="注 册" /><br />
</form>
</html> 

 


测试上面的代码,光标确实可以定位在第一个表单的第一个可见字段。