JQuery Tools验证器没有在动态字段上工作

时间:2011-02-25 10:43:40

标签: javascript validation jquery-tools

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);
}

现在上面指定的代码用于字段验证。 情况类似于如果用户输入单个字段的值,他想输入所有这些字段,其他明智的验证器指出要填充的那些字段。上面指定的代码按照我们的要求工作到现在为止,但现在我们还给了一个可选的循环地址信息部分,他可以通过点击一个按钮再输入更多细节,再次添加像街道(输入类型)城市的字段克隆(输入type)状态(选择类型)国家(选择类型)..所以总共默认字段是6但是在单击添加更多地址信息按钮后,它应该验证所有12个字段而不是仅6个字段并分别显示错误消息。根据我的知识和技能,它是JQUERY工具中的一个错误,它没有更新其验证列表,或者我错过了它的一些功能或处理程序。

1 个答案:

答案 0 :(得分: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);
    }

});

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