你再试试看吧!
建议:WebControl 的脚本事件最好不要写入控件代码内!<script language="javascript" type="text/javascript" defer>
var tb1 = document.getElementById(TextBox1);
tb1.onkeypress = test;
function test()
{  
window.alert("aa");
}
</script><asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>

解决方案 »

  1.   

    如果你不把服务器端控件放在服务器端的form中,会报错
    像你刚才的代码如果放在runat="server"的form中了.那么刚才的程序应该可行.
      

  2.   

    “如果你不把服务器端控件放在服务器端的form中”汗,要是连这都不明白的话,俺就无话可说了!
      

  3.   

    用脚本调试器跟踪了一下,好像根本就没有执行test,我是用vs2005 asp.net写的,不知道有没有关系
      

  4.   

    请帮忙再看看,调试结果不通过,报错:“运行时错误: 'TextBox1' 未定义”
    <script language="javascript" type="text/javascript">
    var tb1 = document.getElementById(TextBox1);
    tb1.onKeypress = test();
    function test()
    {  
    window.alert("aa");
    }
    </script><form id="form1" runat="server">
    <div>
    <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox></div>
    </form>
      

  5.   

    哈哈,晕了,少了一对儿引号!var tb1 = document.getElementById(TextBox1);
    改为
    var tb1 = document.getElementById("TextBox1");抱歉,抱歉!
      

  6.   

    document.getElementById(strWebCtrlId);strWebCtrlId 参数就是 Web 控件的 Id,但必须是字符串,因此放在一对儿引号里!
      

  7.   

    不测试的结果,哈,再次抱歉!以下代码已经过测试:
    注:是客户端的代码,aspx代码应该自己会改了吧!<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <html>
    <head>
    <title> New Document </title>
    <meta name="Generator" content="EditPlus">
    <meta name="Author" content="">
    <meta name="Keywords" content="">
    <meta name="Description" content="">
    </head><body>
    <script language="JavaScript" defer>
    <!--
    var tb1 = document.getElementById("TextBox1");
    // onkeypress 只能相应 空格和回车
    //tb1.onkeypress = test;// 建议改用 onkeydown 事件!
    tb1.onkeydown = test;
    function test()
    {  
        window.alert("aa");
    }
    //--></script>
    <input type="text" id="TextBox1">
    </body>
    </html>