验证动态表单(单个字段、分组字段)



我正在尝试使用jQuery验证创建一个动态表单。验证的所有函数都已经设置好了,但我就是不知道如何解决这个问题。

假设我们有3个字段:

<input .... class='validateme name' />
<input .... class='validateme email' />
<input .... class='validateme phone' />

现在使用jQuery,我使用validateme类检查所有输入,并根据第二个类参数验证它们(如果字段验证失败,则在元素后面添加错误消息)。这是很明显的,但现在我想对最后两个字段进行分组:

<input .... class='validateme name' />
<input .... class='validateme email grouped group_a' />
<input .... class='validateme phone grouped group_a' />

现在的区别在于最后两个字段——只需要正确填写其中一个字段。由于表单是动态的,用户可以自己创建组的名称,我只需要创建一个通用的jQuery函数,如果元素有类grouped,那么只需要其中一个字段是正确的。

可能会出现这样的情况:

<input .... class='validateme email grouped group_a' />
<input .... class='validateme phone grouped group_a' />
<input .... class='validateme name grouped group_b' />
<input .... class='validateme name grouped group_b' />

任何关于如何处理这一问题的想法都会很棒:)。

if ( valid(name)) && (valid(email) || valid(phone)) ) ....

假设您的函数是通用的。您可以使用.hasClass()函数来查看元素是否具有该类

$.each($('.validateme'),function(key,val)
{
    var groupedTrue = false;
    //some code
    if ($(val).hasClass('grouped') && isValid(key))
    {
         groupedTrue = true;
    }
}

使用此代码,您可以检查groupedTruevar以确保至少有一个分组对象是有效的

相关内容

最新更新