asp.net多个文本框验证

时间:2010-04-26 13:22:24

标签: asp.net javascript jquery validation

我目前在页面上有3个文本框控件。

我还有每个文本框的必需valdiator。但是,如果其他两个文本框中的任何一个文本中都有文本,我只希望触发文本框的验证器。如果所有3个文本框都为空,则不应触发验证器。

我有什么方法可以在javascript / jquery中这样做,因为我希望用户能够获得最佳体验。

非常感谢任何帮助。

提前致谢。

2 个答案:

答案 0 :(得分: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进行微调。

答案 1 :(得分:0)

对于客户端验证,请查看此插件:http://plugins.jquery.com/project/validate

这将允许您编写自己的验证方法。