livequery не всегда живут, когда используется с jquery.validate

StackOverflow https://stackoverflow.com/questions/3890568

Вопрос

Я использую плагин jquerylive, чтобы добавить дополнительные классы CSS в .field-Validation-Class Class, как это:

$(".field-validation-error").livequery(function () { 
    $(this).addClass('ui-state-error ui-corner-all'); 
});

Когда я получаю некоторые пролеты с этим классом, генерируемым jQuery.validate Приведенный выше код работает, но при 2-й проверке это не так.

Вот живая ссылка: http://mrgsp.md:8080/awesome/person.Нажмите на создание После нажатия Сохранить, чтобы получить сообщения проверки и нажмите еще раз на сохранении

Это было полезно?

Решение

Почему бы не подключить вашу функцию в то же событие, что триггеры подтверждают ()?

Обновлять

Я прочитал другие комментарии и увидел, что вы используете XVal, немного прочитайте на jQuery.validate. jquery.validate галстуки во многих событиях и регистрация по обработчикам событий будут грязными. Причина, по которой LiveQuery работает впервые, заключается в том, что этикетки генерируются, если они ранее не существуют, так что событие создания делает функцию выполнения, каждый раз, когда метка просто скрыта / показана, поэтому она не запускается, но jQuery. Функция Validate's Showlabel сбрасывает классы.

Идеальное место в XVal, сделав одно небольшое изменение в xVal.jquery.validate.js файл. в _ensureFormIsMarkedForValidation Метод - это линии:

ensureFormIsMarkedForValidation: function(formElement, options) {
        if (!formElement.data("isMarkedForValidation")) {
            formElement.data("isMarkedForValidation", true);
            var validationOptions = {
                errorClass: "field-validation-error",

Все, что вам нужно сделать, это изменить ErrorClass для:

errorClass: "field-validation-error ui-state-error ui-corner-all",

Это потому, что XVal выполняет настройку проверки проверки.

Другие советы

Вы не можете просто опция ErrorClass?

$(".selector").validate({
   errorClass: "field-validation-error ui-state-error ui-corner-all"
})

Или, может быть:

$.validator.setDefaults({ 
   errorClass: "field-validation-error ui-state-error ui-corner-all"
});
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top