<%@ Page Language="C#" AutoEventWireup="true" CodeFile="jQuery2.aspx.cs" Inherits="jQuery2" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>无标题页</title>    <script src="scripts/jquery-1[1].3.2-vsdoc2.js" type="text/javascript"></script></head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
        <br />
        <br />
        <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
        <br />
        <br />
        <asp:TextBox ID="TextBox3" runat="server"></asp:TextBox>
        <br />
    </div>    <script type="text/javascript">
    $(function (){
    $("#TextBox1")[0].focus();
    }
    );
    </script>    </form>
</body>
</html>一个页面上有三个TextBox 1,2,3。初始时1获得焦点,在每个textbox当输入enter键时焦点到下一个textbox
麻烦用jQuery类选择器

解决方案 »

  1.   


    $(function (){
    $("#TextBox1")[0].focus();
    ("#TextBox1").keydown(function(e){
    if(e.keyCode==13){
    $("#TextBox2").focus();
    }
    });
    ("#TextBox2").keydown(function(e){
    if(e.keyCode==13){
    $("#TextBox3").focus();
    }
    });
    });
      

  2.   

    我的keydown(function(e)中e怎么没有e.keyCode?
      

  3.   

    其实我的意思是用类选择器获取textbox而不是根据ID,比如说<input>html控件就可以用$(img:eq(0))来选择第一个元素
      

  4.   


    $("input:text").keydown(function(e){
    if(e.keyCode==13)
    $(this).next("input:text").focus();
    })这个只适合同一层级.for(var i=0;i<$("input:text").length-1;i++)
    {
        $("input:text").eq(i).attr("next",i+1);
    }
    $("input:text").keydown(function(e){if(e.keyCode==13){ 
        $("input:text").eq(parseInt($(this).attr("next"))).focus(); 

    }); 这个应该可以了.
      

  5.   

    上面代码中问题: 
    1.$("input:text").eq(0)可以选择到第一个TextBox,但是focus()没效果 
    2.$(this).next("input:text")选择不到下一个TextBox,而用nextAll()可以选择到下面所有的TextBox 
      

  6.   

    你应该看看Jquery的文档,里面写的很清楚