Плагин jQuery Validation: как проверить, действителен ли элемент?

Немного контекста:

Я использую плагин jQuery Validation для проверки формы регистрации. Теперь я хочу реализовать вызов ajax, чтобы проверить, доступно ли имя пользователя в системе, и я хочу сделать этот вызов ajax, только если значение userName является действительным в соответствии с правилами, установленными в $(form).validate();

Мне нужно что-то вроде:

$("#userName").keyup(function () {
    if ($("#userName").isValid()) {
        //make ajax called
    }
});

Я искал документацию, но не смог определить решение моей проблемы.

Ответ 1

$("#userName").keyup(function () {
    if ($("#userName").valid() == true ) {
        //make ajax called
    }
});

http://docs.jquery.com/Plugins/Validation/valid

Примечание. Для тех, кто не нажимает на ссылку. Вы должны сначала позвонить $("#myform").validate();.

Ответ 2

Validator.element()

Описание: Проверяет один элемент, возвращает true, если он действителен, false в противном случае.

http://jqueryvalidation.org/Validator.element

Ответ 3

Это работало для меня на JQuery 1.11

$("#userName").keyup(function () {
    if ($(this)[0].validity.valid) {
        // AJAX here
    }
});

Ответ 4

Здравствуйте, я нахожу эксклюзивное решение, у меня та же проблема, что и у других 47k & я нахожу решение без других плагинов или библиотек jquery: -first всего, что нам нужно, чтобы зарегистрировать наш вход в переменную, -then при изменении checkValidity(), если true: означает, что если он действителен, мы назначаем зарегистрированную переменную нашему входу, чтобы оставить его для следующего изменения.

        ivar=$('input[name="y-i-name"]')[0];
        $('input[name="y-i-name"]').on('change',function(){
             if($('input[name="y-i-name"]')[0].checkValidity()){


                     // your custom code here!



                     $('input[name="y-i-name"]')[0]=ivar; // & now we rest the input for next change validation
             }
        });