2012-03-29 23 views
11

Mam następujący kod za pomocą jQuery Validate.jQuery sprawdź poprawność dodawania klasy do elementu błędu?

$("#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); 
    } 
}); 

Czy istnieje sposób, aby dodać klasę do errorElement 'rozpiętość' tak, że to jest ...:

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

Odpowiedz

30

Po określeniu errorClass, nie ma nic Cię powstrzymuje od jej podania do dwóch rzeczy: „błąd help-inline”, czyli:

$("#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); 
    } 
}); 

Należy pamiętać, że trzeba korzystać z wersji 1.10 z jQuery Weryfikuj, aby wspierać ten . Wcześniejsze wersje zezwalają tylko na jedno: errorClass.

+1

próbowałem tego, ale potem dostaję to dziwne, gdzie jest coraz dodany przęsło (ale nie usunięte na atrakcje) ... – redconservatory

+2

Ah masz rację, wersja github naprawia to - sprawdź funkcję 'errors' tutaj: https://github.com/jzaefferer/jquery-validation/blob/master/jquery.validate.js#L492 Zastąp swoją wersję jquery Validate tym, lub tylko jedna funkcja powinna wystarczyć ... – Ryley

+0

To niesamowite, dzięki! – redconservatory

0
$(".error").addClass('help-inline') 

doda klasę help-inline do wszystkich elementów DOM z error klasa już.

Czy tego właśnie szukasz?

0

Alternatywa odpowiedzi Ryleya, która nie zawiera "help-inline" w "grupie kontrolnej", która pozwala uniknąć przesunięcia wejścia podświetlonego.

$("#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'); 
    } 
}); 

I cound't obejmować tę kwestię jak komentarz na odpowiedź ...; O (,.

0

Bo myślę, że to jest dla Twittera Booststrap, jest to lepsze rozwiązanie bez konieczności zaktualizować poprawności 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"); 
    } 
}); 
Powiązane problemy