2012-10-24 60 views
1

按鈕應該驗證所有txtboxes的提交,所以我寫了這個代碼,
但它不工作 和我也想,如果文本框不爲空,那麼就應該回發的onclick應該調用,否則不的OnClientClick驗證工作不

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" /> 
+0

你爲什麼不使用必填字段驗證? – Tariqulazam

回答

0

第一,名稱不ASP.NET TextBox控件中的一個屬性,爲所有文本框使用通用的CssClass屬性名稱,並在JavaScript中使用document.getElementsByClassName選擇器來選擇文本框。另請注意在OnClientClick刪除中增加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; 
}