2015-06-30 2 views
0

У меня есть две проверки для одного и того же поля, и я использую jQuery Validator, я хотел бы знать, как очистить предыдущее сообщение об ошибке.Очистить предыдущее сообщение об ошибке проверки JQuery

Моя проблема в том, что если у меня есть ошибка для пустого поля, никогда не удаляется, если у меня есть другая ошибка, например, значение должно быть выше 10. Я все еще показываю, что поле не должно быть пустым, когда значение равно 7.

I google на этом и все предложения сбрасываются. Форма проверки.

var validator = $("#myform").validate(

); 

validator.resetForm(); 

Но, конечно, если я сделаю это, сообщение об ошибке не будет показано. Мне просто нужно очистить предыдущую ошибку от DOM перед проверкой новостей.

Кто-нибудь знает другой подход, непосредственно взаимодействующий с DOM?

Я пробую это без успеха.

if ($.validator.defaults.onfocusout) { 
    $(element).unbind(".validate-biggerThanOrigin").bind("blur.validate-biggerThanOrigin", function() { 
     $(element).valid(); 
    }); 
} 

Мы определяем валидацию следующим образом.

 $.validator.addMethod("biggerThanOrigin", function (value, element, param) { 
      return biggerThanOrigin(value, element, param, validationMessages.biggerThanOrigin, validationMessages.referenceForkEmpty); 
     }); 

     $.validator.addMethod("lessThanOrigin", function (value, element, param) { 
      return lessThanOrigin(value, element, param, validationMessages.lessThanOrigin, validationMessages.referenceForkEmpty); 
     }); 

С уважением.

+0

$ window.location.reload(); – Sreejith

+0

загрузить всю страницу, это не вариант. На самом деле это диалог – paul

+0

перезагрузить все это в диалоговом окне, используя EndRequestHandler/BeginRequestHandler – Sreejith

ответ

1

Вы должны предоставить отдельные сообщения для проверки на наличие ошибок.

$("#myform").validate({ 
    rules: { 
    name: { 
    "required": true, 
    "minlength": 10 
    }, 
    messages: { 
    name: { 
     required: "Please specify your name", 
     minlength: "Your name must be atleast 10 characters long" 
    } 
    } 
}); 

Это должно работать в вашем случае.

EDIT:

Вот рабочий FIDDLE.

+0

у нас есть отдельное сообщение, это не проблема. – paul

+0

Вы видели скрипку? –

+0

Моя структура не совсем то же самое. Мы добавляем в $ .validator все проверки, когда мы инициализируем наш validator.js – paul

0

Как вы просили другой подход, так вот решение.

FIDDLE:

$('input').on('keyup', function() { 
    if ($(this).val().length == 0) 
     $('label').text('Field must not be empty'); 
    else if ($(this).val() <= 10) 
     $('label').text('Value must be greater than 10'); 
    else 
     $('label').text(''); 
}); 

Это просто пример. Вы можете использовать этот подход. Спасибо в любом случае!

+0

нет, спасибо, проверка jQuery является обязательной для проекта. – paul

+0

Вы можете использовать номер ответа 1. Его проверенный метод очистки сообщения об ошибке –

Смежные вопросы