Плагин проверки jQuery: как вызвать функцию при проверке поля - PullRequest
1 голос
/ 07 августа 2009

В этой функции я отображаю изображение ошибки в следующей таблице таблицы, когда поле не проверено. Он отображает изображения ошибок правильно, но когда поле проверено, его изображение ошибки не удаляется из следующего тд. Я пытался использовать опцию «успех», но она не работает. Может кто-нибудь сказать мне точный код.

$(obj).find("form").validate({

    showErrors: function(errorMap, errorList) {
        for ( key in errorMap ) {
                $('#' + key).parent().next().html("<img id='exclamation' src='images/exclamation.gif' />");
        }
    }

});

Ответы [ 3 ]

3 голосов
/ 07 августа 2009

Возможно, вы захотите посмотреть на параметр errorPlacement.

см. Помните демонстрацию молока

оттуда:

errorPlacement: function(error, element) {
    if ( element.is(":radio") )
        error.appendTo( element.parent().next().next() );
    else if ( element.is(":checkbox") )
        error.appendTo ( element.next() );
    else
        error.appendTo( element.parent().next() );
}

настроить его, чтобы разместить сообщение об ошибке в нужном месте (соседний тд)

1 голос
/ 07 августа 2009

Создать функцию, которая удаляет все изображения ошибок. Вызывайте его в начале методов success и showErrors.

0 голосов
/ 11 августа 2009

Через некоторое время я получил ответ. Фактически я хочу отобразить изображение с выноской (содержащей ошибку) в следующем столбце (td) поля ввода, которое не проверено плагином проверки. И когда поле ввода проверяется, это изображение ошибки должно быть удалено с его выноской.

Вот мое решение.

$("form").validate({

    errorPlacement: function(error, element) {

        //There should be an error
        if(error.html() != ''){         

            element.parent().next().html("<img id='exclamation' src='images/exclamation.gif' />").callout({
                width       : 200,
                cornerRadius    : 8,
                className   : "validationCallout",
                content     : error,
                align       : "left",
                nudgeHorizontal : -14,
                nudgeVertical   : 4,
                arrowHeight : 6
            });     
        }
    },

    success: function( label ) {
        $(obj).find(".valid").parent().next().html("");         //remove error image from next column(td) of input containing "valid" class
        $(obj).find(".valid").parent().next().closeCallout();   //remove callout on error image from next column(td) of input containing "valid" class
    }

});

Этот код может быть сложным, но сейчас он работает для меня. Здесь используется плагин выноски, который не связан с вопросом, но может помочь любому другому. Кто-нибудь может сделать это проще?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...