2010-04-26 61 views
0

我目前在我的页面上有3个文本框控件。asp.net多文本框验证

我也有每个文本框所需的valdiator。但是,如果其他两个文本框中都有文本,我只想让文本框的验证器触发。如果所有3个文本框都为空,则不应触发验证程序。

有没有什么办法可以在javascript/jquery中做到这一点,因为我希望用户获得尽可能最好的体验。

任何帮助将不胜感激。

在此先感谢。

回答

1

如果您使用的WebForms我会用一个自定义的验证走在这种情况下,每个文本框(你可以只用一个做虽然):

<asp:CustomValidator id="cvalTextBox1" runat="server" Display="*" 
     ErrorMessage="Required: TextBox1" 
     ClientValidationFunction="ValidateRequiredTextBox1" ValidateEmptyText="true" 
     ControlToValidate="txtTextBox1"></asp:CustomValidator> 

然后实现你的JavaScript(使用jQuery):

<script> 
    function ValidateRequiredTextBox1(source, arguments) 
    { 
     if ((jQuery.trim($("#<%= txtTextBox1.ClientID %>").val()) == "") && 
      ((jQuery.trim($("#<%= txtTextBox2.ClientID %>").val()) != "") || 
      (jQuery.trim($("#<%= txtTextBox3.ClientID %>").val()) != ""))) 
     { 
      arguments.IsValid = false; 
     } 
     else 
     { 
      arguments.IsValid = true; 
     } 
    } 
</script> 

因此,这将适用于1文本框(假设你想要1验证器为每个框显示*或东西)。总共需要3个函数才能实现所有3个文本框,或者您可以只使用一个验证器对上述JavaScript进行微小的调整。

+0

谢谢,我用了一些小修改。它工作得很好。 – 2010-04-28 08:14:53