<script language="JavaScript">
function handleKey() {
    if (window.event.keyCode == 13) {
        if (window.event.srcElement.name == "text1") {
            document.formname.text2.focus();
        }
        if (window.event.srcElement.name == "text2") {
            document.formname.text3.focus();
        }
        if (window.event.srcElement.name == "text3") {
            document.formname.text4.focus();
        }
        window.event.returnValue = false;
    }
}
</script>
<body onkeypress="handleKey()" onload="document.formname.text1.focus()">
    <form name="formname">
        <input type="text" name="text1"><br>
        <input type="text" name="text2"><br>
        <input type="text" name="text3"><br>
        <input type="text" name="text4"><br>
    </form>
</body> 

解决方案 »

  1.   

    谢谢你,可是,我做的不是这么简单的表单,是在asp里的,
    while not rs.eof 
    <input type="text" name=rs("user_id")><br>
    rs.movenext
    wend
    请问如何解决这个问题呢?(我想可以同样来个循环,但是循环的次数如何传递到<javascript>里面去?)
    谢谢你!!
      

  2.   

    你可以增加一个hidden,存储循环次数:
    <input type=hidden value=<%=rs.count%>>
    然后再利用客户端的javascript进行处理!
      

  3.   

    <%
    sSql = "Select * From tablename"
    Set rs = Server.CreateObject("ADODB.RecordSet")
    rs.Open sSql, conn, 3, 3
    %><script language="JavaScript">
    function handleKey() {
        var next;
        if (window.event.keyCode == 13) {
            if (window.event.srcElement.index <> "") {
                next = (parseInt(window.event.srcElement.index) + 1) + "";
                document.all(next).focus();
            }
        }
    }
    </script>
    <body onkeypress="handleKey()" onload="document.formname.text1.focus()">
        <form name="formname">
        <%
        Dim i
        i = 0
        while not rs.eof 
        %>
        <input type="text" name=rs("user_id") index="<%= i %>"><br>
        <%
            rs.movenext
        wend
        %>
        </form>
    </body> 
      

  4.   

    现以用asp实现好一成绩录入页面:
    <%set rs=conn.execute("select stu_num,stu_id from stu_tab,cal_tab where cal_tab.cla_num="&session("cla_num")&" and stu_tab.cla_num=cal_tab.cla_num")
    %>
    <FORM ACTION="inputgrade.asp"  METHOD=POST id=form1 name=form1>
    <%
    while not rs.eof       
    response.write rs("stu_num")
    response.write rs("stu_id")
    %>
    <INPUT type="text" id=text1 name=<%Response.Write "gradeof"&rs("stu_num")%> size="8">
    <%
    rs.movenext
    if not rs.eof then
    response.write rs("stu_num")   
    response.write rs("stu_id")
    %>
    <INPUT type="text" id=text2 name=<%Response.Write "gradeof"&rs("stu_num")%> size="8">   
    <%  
    Response.Write"<br><br>" rs.movenext
    end ifwend
    %>
    <br>
    <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    <INPUT type="submit" value="提交" id=submit1 name=ok>&nbsp;&nbsp;&nbsp;&nbsp;
    <INPUT type="reset" value="取消" id=submit2 name=44>  
    </form> 我以上为了需要一次循环做两次rs.movenext。
    现已实现的界面如下:
    学号    姓名   成绩      学号   姓名   成绩
    1001    张三  <input>   1002   李四   <input>
    .....                    ....<input type=sumit><input type=reset>
    现在老师要求
    1。不用Tab键移动光标,而用enter键移动光标。
    2。用F1,F2...等填入优秀,良好,中等等(考察课情况)盼大虾赐教!!!!