当我们希望一打开某个页面,焦点能够停留在第一个控件上的时候,可以写个简单的脚本,
然后放到onload事件处理函数中,比如说下面的一段代码:
\n
\n
<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>
\n
\n
当用户打开页面,焦点是可以定位在第一个字段的。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>
\n
\n
表单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>
\n
测试上面的代码,光标确实可以定位在第一个表单的第一个可见字段。
\n \n