Ошибка валидатора JQuery Tools при динамическом росте элементов формы - PullRequest
0 голосов
/ 25 февраля 2011
function testOptionalFieldsValidation(el){
    group = getGroup(el);
    return validateGroup(group);
}

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


$('#addressInfo div.links .add').live('click',function(){
    $('form').data('validator').destroy();
    $('form').validator().bind("onBeforeFail", function(e, els) {
        els.css('border','1px solid #F00');
        if (!els.is(':visible') ) {
            els.css('border','1px solid #F00');
            els.css('width', els.next().width());
            els.css('top', els.next().position().top + 1);
            els.css('left', els.next().position().left + 6);
            els.css('visibility', 'hidden');
            els.css('position', 'absolute');
            els.css('display', 'block');
            els.next().bind('blur', function() {
                els.trigger('keyup');
            });
        }
    });
    $.tools.validator.fn(".select .required", function(input, value) {
        return value.length >= 1 ? true : {
            en: "Please select this Mandatory field"
        };
    });

});

Как вы можете видеть выше, упомяните блок кода $ ('# addressInfo div.links .add'). Live (определение 'click', function (). Я вызываю деструктор для валидатора, а не для построения, чтобы он могвозьмите мой блок необязательных полей в разделе «Информация об адресе», который увеличивается, просто нажав на знак «плюс» напротив каждого блока).После вышеупомянутого шага я даже вызываю свою собственную функцию проверки правил, чтобы связать ее с валидатором для проверки моих полей желаний.Пожалуйста, помогите мне с этим.Спасибо

1 Ответ

0 голосов
/ 28 марта 2011

Я вызываю конструктор валидатора для повторной инициализации всего ..

...