<asp:TextBox runat="server" ID="Nm" onblur="CheckNm(this.value)"  />
<asp:TextBox runat="server" ID="Pwd" onblur="CheckPwd(document.getElementById('<%=Nm.ClientID %>').value,this.value)" />报错document.getElementById("<%=Nm.ClientID %>") is null传入Nm的客户端ID: ctl00_ContentPlaceHolder1_Nm就可以如何将Nm的值传 给Js方法CheckPwd呢?在服务器端给Pwd加onblur属性的方法之外哦

解决方案 »

  1.   

    什么意思? 不就是 onblur="CheckPwd(this.value)"
      

  2.   

    为什么不在CheckPwd里面弄呢 ?
    比如
    var pwd = document.getElementById('<%=Nm.ClientID %>').value ;
      

  3.   

    inetfuture兄弟,CheckPwd(this.value)不是这样哦,CheckPwd这个方法是要接受两个参数的,第一个参数是Nm的一个服务器控件TextBox的值,第二个参数才是"this.Value"zell419k兄弟的思路也是可行的,但我就是想知道,服务器控件的值如何作为参数传给JS方法;
      

  4.   

    其实 就是它的"<"没转义
    onblur="CheckPwd(document.getElementById('&lt;%=Nm.ClientID %>').value,this.value)"
    生成出来变成了这样 。 
      

  5.   

    服务器端:
    Pwd.Attributes["onblur"]="document.getElementById('"+Nm.ClientID+"').value,this.value)";
      

  6.   

    说的对,生成出来是变成了:onblur="CheckPwd(document.getElementById('&lt;%=Nm.ClientID %>').value,this.value)"
    可是,如何才能让它按我们希望的情况工作呢?
      

  7.   

    document.getElementById('<%=Nm.ClientID %>').value
    这个放到你那个函数里吧.
      

  8.   

       function CheckPwd() {
                var v1 = document.getElementById('<%=Nm.ClientID %>').value;
                var v2 = document.getElementById('<%=Pwd.ClientID %>').value; 
            }
      

  9.   

    你应该换种方法,变通一下
    情况估计是这样的
    <asp:TextBox runat="server" ID="Pwd" onblur="CheckPwd(document.getElementById('<%=Nm.ClientID %>').value,this.value)" />
    这个东西根本就不是一个html,而是个xml表示,他其实在.net中是一个定义好的个类,然后实例化对象,再运行,再输出html, 你这个onblur根本不是asp.net服务器控件的属性,asp.net无视他的
    说白了就是asp.net输出html的时候 
    Response.Write("onblur='<%=Nm%>'")这样样子差不多asp.net在加载页面时候有各种各样的事件也有各种顺序应该先了解这些