1

提交按钮应该验证所有的txtboxes,所以我写了这段代码,
但它不起作用,我还希望如果文本框不为空,那么它应该回发并且应该调用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" />
4

1 回答 1

0

首先,name 不是 ASP.NET TextBox 控件中的属性,为所有文本框使用一个通用的 CssClass 属性名称,在 javascript 中使用 document.getElementsByClassName 选择器来选择文本框。还要注意return在 OnClientClick 声明中的添加。

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;
}
于 2012-10-24T20:27:51.543 回答