onclientclick验证不起作用

时间:2012-10-24 19:59:21

标签: javascript asp.net

提交按钮应该验证所有的txtbox,所以我写了这段代码,
但它不起作用 并且我也希望如果文本框不为空,那么它应该回发并且onclick应该调用,否则不是

 function submit() {
      for( var i = 0, t = document.getElementsByName( "txt" ), l = t.length; i < l; i++ )     
         if( t[i].value)
            return true;

      return false;
   }

的.aspx

<asp:TextBox name="txt" runat="server" ID="email" CausesValidation="True"
                          ClientIDMode="Static"  ValidationGroup="email" ></asp:TextBox>

 <b>Password:</b><br />
                        <asp:TextBox ClientIDMode="Static" ID="pwd" runat="server" name="txt" TextMode="Password" CausesValidation="True"></asp:TextBox>

 <asp:LinkButton ID="Submit" runat="server" CssClass="button" Text="Login"
                             onclick="Submit_Click" OnClientClick="submit()" CausesValidation="False" />

1 个答案:

答案 0 :(得分:0)

首先,name不是ASP.NET TextBox控件中的属性,对所有文本框使用通用的CssClass属性名称,在javascript中使用document.getElementsByClassName选择器来选择文本框。另请注意在OnClientClick decleration中添加return

<强> ASPX

<asp:TextBox CssClass="test" runat="server" ID="email" CausesValidation="True"
                          ClientIDMode="Static"  ValidationGroup="email" ></asp:TextBox>

 <b>Password:</b><br />
<asp:TextBox CssClass="test" ClientIDMode="Static" ID="pwd" runat="server" TextMode="Password" CausesValidation="True"></asp:TextBox>

 <asp:LinkButton ID="Submit" runat="server" CssClass="button" Text="Login"
                             onclick="Submit_Click" OnClientClick="return submit()" CausesValidation="False" />

JAVASCRIPT

function submit() {
      for( var i = 0, t = document.getElementsByClassName( "test" ), l = t.length; i < l; i++ )     
         if( t[i].value=="")
            return false;

      return true;
}