0
function getGroup(el){
    return $(el).parents('.field');
}

function validateGroup(group){
    var count = 0;
    $(group).find("input[type!='hidden'], select").each(function(){
        if( $(this).val() )
            count++;
    });
    if($(group).find("input[type!='hidden'], select").length == count || count == 0)
        return true;
    else
        return false;
}
    $.tools.validator.fn(
    $("#addressInfo .field select, #addressInfo .field input[type!='hidden']"),
    "Please Complete this mandatory field",
    function(el, v){
        if( !testOptionalFieldsValidation(el) && ($(el).val().length == 0 ) )
            return false;
        else
            return true;
    }
    );
    function testOptionalFieldsValidation(el){
    group = getGroup(el);
    return validateGroup(group);
}

"

现在上面指定的代码用于字段验证。这种情况类似于如果用户输入单个字段的值,他想输入所有其他字段,其他明智的验证器会指出要填写的字段。到目前为止,上面指定的代码一直按照我们的要求工作,但是现在我们还提供了一个可选的可循环地址信息部分,他可以通过单击一个按钮输入更多详细信息,该按钮再次添加诸如街道(输入类型)城市(输入类型)状态(选择类型)国家(选择类型)..所以总共默认字段为 6,但在单击添加更多地址信息按钮后,它应该验证所有 12 个字段而不是其中的 6 个并分别显示错误消息。根据我的知识和技能,它是 JQUERY 工具中的一个错误,它没有

4

1 回答 1

0
$('form').submit(function(){
    $('form').validator();
    $.tools.validator.fn(
        $("#addressInfo .field select, #addressInfo .field input[type!='hidden']"),
        "Please Complete this mandatory field",
        function(el, v){
            if( !testOptionalFieldsValidation(el) && ($(el).val().length == 0 ) )
                return false;
            else
                return true;
        }
        );
    function testOptionalFieldsValidation(el){
        group = getGroup(el);
        return validateGroup(group);
    }

});

我的代码的修复是我需要通过在提交事件上调用构造函数来初始化验证器,甚至初始化我的自定义验证函数。

于 2011-03-04T13:07:52.960 回答