我做了一个用户控件(aa.ascx),用户控件的页面里有一个TextBox1按钮,我把这个用户控件插入index.aspx的页面后,放在aa.ascx的这段“TextBox1.Attributes.Add("onkeydown", "if(event.keyCode==13){event.keyCode=9,document.all.Button1.click();}")”代码失效 ,然后我把这个代码加到index.aspx也不行,提示TextBox1未声明。真是头疼啊//

解决方案 »

  1.   

    看看运行时的html代码,这个按钮是否有这个onkeydown属性,
    调试这种客户端代码,最好这么做
      

  2.   

    可直接在TextBox1里面写上
    <asp:TextBox id="TextBox1" onkeydown="if(event.keyCode==13){event.keyCode=9,document.all.Button1.click();}"
    的,VS.NET会化上红的下划线,但可以运行的
      

  3.   

    document.all.Button1.click();中的Button1他的客户ID发生了变化
    他是用户控件名件+控件的名称
      

  4.   

    在用户控件的!IsPostBack中把这个代码加上,应该不会出问题了
      

  5.   

    建议最好把用户控件和 index.aspx里的代码独立起来。
    看你写的,是不是下面这个意思?:<script language="javascript">
    function CheckKey()
      {     
        if (event.keyCode == 13)
        {
          if(Form1.TextBox1.value == "")
           {
            alert("对不起,你的用户名不能够为空");
             return;
            }
         if(Form1.TextBox2.value == "")
           {
            alert("对不起,你的密码不能够为空");
            return;
           }
         Form1.submit();
        }
        return true;
      }
    </script>
      

  6.   

    同意  pengweihua(pwh) 的看法
    客户ID 已经发生了变化 在用户控件被用在别的aspx页面时候
      

  7.   

    客户ID 已经发生了变化function CheckKey()
      {     
        if (event.keyCode == 13)
        {
          if(document.all.<%=TextBox1.ClientID%>.value == "")
           {
            alert("对不起,你的用户名不能够为空");
             return;
            }
         if(document.all.<%=TextBox2.ClientID%>.value  == "")
           {
            alert("对不起,你的密码不能够为空");
            return;
           }
         Form1.submit();
        }
        return true;
      }
      

  8.   

    可以像用ASP一个。输入HTML代码去控制呀。