Как я могу определить, когда выполняется проверка jQuery, и вызвать что-то на основе этого события? - PullRequest
8 голосов
/ 21 июня 2011

Я новичок в jQuery.

Работа с плагином проверки jQuery и cufon в одно и то же время доставляет мне действительно тяжелые времена.

По сути, я хочу обнаружить событие после проверки jQueryсделал то, что должен был сделать, и сразу после этого вызвал Cufon.refresh ().

$('#commentForm').validate({
    rules: {
        password: {
            required: true,
            minlength: 8,
            maxlength: 8,
            number: true
        },
    }
});

Мы ожидаем <label class="error"> SOME TEXT </label>, когда форма недействительна.

И как только это будет создано, я хочув Cufon.refresh () на этой метке, созданной проверкой jQuery. Как я могу определить, когда выполняется проверка jQuery, и вызвать что-то на основе этого события?

Любая помощь, высоко оцененная.С уважением, Петр

Ответы [ 6 ]

10 голосов
/ 22 июня 2011

Спасибо @Ariel - если есть «успех», то должен быть и «не успех», поэтому ..

Рабочий код:

$('#commentForm').validate({
    rules: {
        password: {
            required: true,
            minlength: 8,
            maxlength: 8,
            number: true
        }
    },
    showErrors: function(errorMap, errorList) {
        this.defaultShowErrors();
        Cufon.refresh();
        //alert('not valid!')
    },
    success: function() {
        //alert('valid!')
    }
});

Спасибоснова за идею!

3 голосов
/ 21 июня 2011

Используйте параметр success:

$('#commentForm').validate({
    rules: {
        password: {
            required: true,
            minlength: 8,
            maxlength: 8,
            number: true
        },
    }
    success: function() { .... }
});

Обратите внимание, что после закрывающей скобки для объекта пароля у вас есть лишняя запятая.Это даст ошибку в IE.

1 голос
/ 23 сентября 2014
 <script src="js/validate/jquery-1.11.1.min.js"></script>
 <script src="js/validate/jquery.validate.min.js"></script>
 <script src="js/validate/additional-methods.min.js"></script>

<script>
    jQuery.validator.setDefaults({
        success:  "valid"
    });

    var form = $("#myform");
    form.validate({
        rules: {
           name: {required: true, minlength: 2},
            lastname: {required: true, minlength: 2}
        }

    });

    $("#button").click(function() {
        if(form.valid() == true ) { // here you check if validation returned true or false 
            $("body").addClass("loading");
        }
    })

</script>
1 голос
/ 21 июня 2011
submitHandler: { function(){ bla bla }}

Это позволит вам выполнить код после завершения проверки.вам нужно будет разместить фрагмент формы отправки, поскольку он заменяет обработчик по умолчанию.

РЕДАКТИРОВАТЬ:

    // specifying a submitHandler prevents the default submit 
    submitHandler: function() { 
        alert("submitted!"); 
    }, 
    // set this class to error-labels to indicate valid fields 
    success: function(label) { 
        // set   as text for IE 
        label.html(" ").addClass("checked"); 
    } 

Вы можете использовать любой из них, чтобы делать то, что вы хотите.submitHandler позволяет вам вместо этого остановить и выполнить код (вы можете использовать его для выполнения кода ДО того, как вы отправите его) или для успешного выполнения кода после отправки.

0 голосов
/ 06 февраля 2019
$(document).ready(function() {  
    $('#commentForm').submit(function(){
        var validationResponse = $('#commentForm').valid();

        if(validationResponse) {
            // when true, your logic
        } else {
            // when false, your logic
            return false;
        }
    });

    $("#commentForm" ).validate({
        rules: {
            "first_name": {
                required: true
            }
        },
        messages: {
            "first_name": {
                required: "First Name can not be empty"
            }
        }
    });
});
0 голосов
/ 30 августа 2012

Поместите его внутрь опции errorPlacement.

errorPlacement: function(error, element) {
  error.appendTo( element.parent() );
  yourCodeHere();
}
...