2009-10-16 8 views

Odpowiedz

127

Użyj niestandardowej funkcji umieszczania błędów (zobacz wtyczkę options), która nie dołącza komunikatu o błędzie do niczego.

$('#form').validate({ 
    errorPlacement: function(error,element) { 
    return true; 
    } 
}); 

Lub możesz umieścić komunikaty o błędach w innym miejscu na stronie - powiedz w DIV na górze strony.

+0

Dzięki uznało tę odpowiedź, podczas gdy ten sam problem :) – Agos

+1

@tvanfosson, Jest to OK, aby użyć CSS tak: 'label.error {display: none ważne;}' – Mori

+2

@RainLover To by nie przesłonić style ustawione bezpośrednio na elemencie. Musiałbym sprawdzić, jak wtyczka normalnie wyświetla ekran. Jeśli jest w całości oparty na klasach, to działałoby, ale jeśli używa opcji pokaż/ukryj, to nie. Zmusiłoby to również do znalezienia rozwiązania globalnego (zakładając pojedynczy arkusz stylów obejmujący całą witrynę). – tvanfosson

9

Można zastąpić showErrors funkcję:

jQuery('form').validate({ 
    showErrors: function(errorMap, errorList) { 
     // Do nothing here 
    }, 
    onfocusout: false, 
    onkeyup: false, 
    rules: { 
     email: { 
      required: true 
     } 
    }, 
    messages: { 
     email: { 
      required: 'The email is required' 
     } 
    } 
}); 
+0

Czy to też nie wyeliminuje podświetlenia elementu? – tvanfosson

+3

@tvanfosson: Tak, rzeczywiście. –

+0

dzięki za onfocusout i onkeyup! – user3560988

6

To jak to zrobić. Wystarczy umieścić $.validator.messages.required = ''; przed wezwanie do zainicjowania validate() tj .:

$.validator.messages.required = ''; 
$('#formData').validate({});` 

To pozwoli pokazać style na wejściach, ale bez etykiety wiadomość!

+0

idealne rozwiązanie –

Powiązane problemy