Плагин 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
}
});