2009-09-18 75 views

回答

0

使用自定義驗證器,不需要循環頁面上的文本框,因爲此方法獲取頁面上的所有文本框。在ClientValidationFunction中指定的JavaScript函數將爲每個帶有與其關聯的驗證程序的文本框調用。

<asp:TextBox ID="txtHomePhone" runat="server"></asp:TextBox> 
<asp:CustomValidator ID="cvHomePhone" runat="server" ErrorMessage="*" ClientValidationFunction="Validate" ControlToValidate="txtHomePhone" ValidateEmptyText="true"></asp:CustomValidator> 


<asp:TextBox ID="txtWorkPhone" runat="server"></asp:TextBox> 
<asp:CustomValidator ID="cvWorkPhone" runat="server" ErrorMessage="*" ClientValidationFunction="Validate" ControlToValidate="txtWorkPhone" ValidateEmptyText="true"></asp:CustomValidator> 


<asp:TextBox ID="txtMobilePhone" runat="server"></asp:TextBox> 
<asp:CustomValidator ID="cvMobilePhone" runat="server" ErrorMessage="*" ClientValidationFunction="Validate" ControlToValidate="txtMobilePhone" ValidateEmptyText="true"></asp:CustomValidator> 


<script language="javascript"> 
function Validate(sender, args) 
{ 
    args.IsValid = false; 
    if(args.Value != "") 
    { 
     args.IsValid = true; 
    } 
} 
</script> 
+1

這並不能驗證是否有一個文本框已被填寫。Alejandro Bonilla的答案更準確 – Paul 2010-09-22 12:59:33

2

使用自定義的驗證,與ClientValidationFunction屬性此功能。

function validate(source, arguments) { 
      var textboxes = document.getElementsByTagName("INPUT"); 
      for (var i = 0; i < textboxes.length; i++) { 
       if (textboxes[i].type == "text" && textboxes[i].value != "") { 
        arguments.IsValid = true; 
        return; 
       } 
      } 
      arguments.IsValid = false; 
     } 
+0

回頭看這個問題這個答案也是有效的。 +1 – 2015-01-14 16:44:41

9
<script language="javascript"> 
    function Validate(sender, args){  
     args.IsValid = false;  
     if(args.Value != "")  
     {   
     args.IsValid = true;  
    }}</script> 

上述功能不驗證的至少一個文本框包含數據它驗證附接到驗證控制有數據。只需使用一個這樣的自定義驗證程序

<asp:TextBox ID="txtHomePhone" runat="server"></asp:TextBox> 
<asp:TextBox ID="txtWorkPhone" runat="server"></asp:TextBox> 
<asp:TextBox ID="txtMobilePhone" runat="server"></asp:TextBox> 

<asp:CustomValidator ID="cvMobilePhone" runat="server" ErrorMessage="ADASDASDA" ClientValidationFunction="Validate" 
    ValidateEmptyText="true"></asp:CustomValidator> 

<script language="JavaScript"> 
    function Validate(sender, args) { 
    var txt1 = document.getElementById("<%= txtHomePhone.ClientID %>"); 
    var txt2 = document.getElementById("<%= txtWorkPhone.ClientID%>"); 
    var txt3 = document.getElementById("<%= txtMobilePhone.ClientID%>"); 
    args.IsValid = (txt1.value != "") || (txt2.value != "") || (txt3.value != ""); 
    } 
</script> 

如果您想重用此功能,您可以將屬性添加到您的驗證對象。 查看:http://alejandrobog.wordpress.com/2009/09/27/pass-your-own-arguments-to-the-clientvalidationfunction-in-a-customvalidator/