JQuery проверить добавить класс к элементу ошибки? - PullRequest
12 голосов
/ 29 марта 2012

У меня есть следующий код с использованием jQuery Validate.

$("#register").validate({
    debug: true,
    errorClass:'error',
    validClass:'success',
    errorElement:'span',
    highlight: function (element, errorClass, validClass) { 
        $(element).parents("div.control-group")
                  .addClass(errorClass)
                  .removeClass(validClass);
    }, 
    unhighlight: function (element, errorClass, validClass) {
        $(element).parents(".error")
                  .removeClass(errorClass)
                  .addClass(validClass); 
    }
});

Есть ли способ добавить класс в errorElement, 'span', чтобы он ...:

<span class="help-inline error">Message</span>

Ответы [ 4 ]

35 голосов
/ 29 марта 2012

Когда вы указываете errorClass, ничто не мешает вам сделать из него две вещи: «ошибка встроенной справки», т. Е .:

$("#register").validate({
    debug: true,
    errorClass: 'error help-inline',
    validClass: 'success',
    errorElement: 'span',
    highlight: function(element, errorClass, validClass) {
      $(element).parents("div.control-group").addClass(errorClass).removeClass(validClass);
    },
    unhighlight: function(element, errorClass, validClass) {
      $(element).parents(".error").removeClass(errorClass).addClass(validClass);
    }
});

Обратите внимание, что вы должны использовать версию 1.10 jQuery Validate для поддержки этого. Более ранние версии позволяют только один errorClass.

0 голосов
/ 20 мая 2013

Поскольку я думаю, что это для Twitter Booststrap, это лучшее решение без необходимости обновления проверки jquery:

$("#register").validate({
    debug: true,
    errorClass: 'help-inline',
    validClass: 'success',
    errorElement: 'span',
    highlight: function(element, errorClass, validClass) {
      $(element).parents("div.control-group").addClass("error");

    },
    unhighlight: function(element, errorClass, validClass) {
      $(element).parents(".error").removeClass("error");
    }
});
0 голосов
/ 12 марта 2013

Альтернативный ответ Райли, который не включает 'help-inline' в 'control-group', которая позволяет избежать смещения ввода при выделении.

$("#register").validate({
    debug: true,
    errorClass: 'error help-inline',
    validClass: 'success',
    errorElement: 'span',
    highlight: function(element, errorClass, validClass) {
      $(element).parents("div.control-group").addClass('error').removeClass('success');
    },
    unhighlight: function(element, errorClass, validClass) {
      $(element).parents(".error").removeClass('error').addClass('success');
    }
});

Не могу включить эту проблему как комментарийответа ...; o (,.

0 голосов
/ 29 марта 2012
$(".error").addClass('help-inline')

добавит класс help-inline ко всем элементам DOM с классом error.

Это то, что вы ищете?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...