2013-03-15 20 views
8

Mam więc formularza siedem części, gdzie sześć kart są ukryte za pomocą CSS i gdy użytkownik kliknie obok inna część zanika w.plugin jQuery Validation walidacji formularza kliknij przycisk

mam składać stronę, aby upewnić się, że wtyczka działa; to jest. Zasadniczo jej tylko przejście do następnej części formularza bez sprawdzania aktualnego udziału

Jako przykład

HTML

<form id = "form1" action = "backend.php" method = "post"> 
<label for "phone">First Name </label> 
    <input type = "text" name = "fName" placeholder = "First Name..." class = "required" id = "fName" /> 
<button id = "btn" type = "button" class = "buttonnav next">next</button> 
</form> 

JavaScript

$('#btn').click(function() { $("#form1").validate();}); 
+0

Czy używasz wtyczki jQuery Weryfikuj? To byłoby coś o czym wspomnieć. – Sparky

Odpowiedz

18

Jeśli używasz the jQuery Validate wtyczka, z kodem, wtyczka nie jest inicjowana dopóki nie zostanie kliknięty przycisk. Jeśli wtyczka nie została zainicjalizowana, nie ma sprawdzania poprawności.

$('#btn').click(function() { $("#form1").validate();}); 

Zamiast .validate() jest wywoływana raz na DOM gotowy do zainicjować Wtyczka na formularzu.

Jeśli chcesz przetestować formularz w dowolnym momencie po inicjalizacji, należy użyć .valid() method.

$(document).ready(function() { 

    $('#form1').validate({ // initialize plugin 
     // your options 
    }); 

    $('#btn').click(function() { 
     $("#form1").valid(); // test the form for validity 
    }); 

}); 

nie mam pojęcia, jak skonfigurujesz każdą część do interakcji ze sobą lub co drugi kod jest używany. Opierając się na samym OP, oto przykład pracy z powyższą odpowiedzią.

DEMO: http://jsfiddle.net/pqVJM/

$(document).ready(function() { 

    $('#form1').validate(); 

    $('#btn').click(function() { 
     if ($("#form1").valid()) { 
      alert('hello - valid form'); 
     } 
    }); 

}); 
+0

Przepraszamy, używam wtyczki sprawdzania poprawności. Zmieniłem scenariusz do tego; niestety nadal uzyskuję taki sam wynik jak poprzednio. Nie wiem, czy to pomaga, czy nie (lub pokazuje moją niewiedzę ...), próbowałem if ($ ("# form1") valid() == true) {alert ("hello");} wewnątrz obsługi kliknięcia, aby zobacz, czy coś się dzieje, i robiło się stale "cześć" –

+0

@ArtTaylor, nie mam pojęcia, gdzie jeszcze się nie mylisz ... nie pokazałeś wystarczająco dużo kodu w twoim OP. – Sparky

+0

@ArtTaylor, Zobacz moją zredagowaną odpowiedź. Z moją odpowiedzią, twój kod działa: http://jsfiddle.net/pqVJM/ – Sparky

Powiązane problemy