2010-02-10 6 views
13

Mam problem z całkiem perfekcyjnym podejściem, który zbadałem i podałem puste;jQuery validate(); Potwierdź tylko kliknięcie jednego przycisku przesyłania:

Scenariusz: Mam formularz z validate() plugin jQuery bassistance.de'S (http://docs.jquery.com/Plugins/Validation).

Czy praca jest jednak idealnie wykonana; Mam dwa rodzaje przycisku przesyłania.

Jedna osoba przesyła formularz w zwykły sposób, uruchamiając proces sprawdzania oryginalności i zwracania błędów lub powodzenia.

Drugi typ to przycisk do przeglądarki wszystkich intensywności i celów, jednak mówi mojemu back-endowi, aby dodał kolejną część danych wejściowych (np. Powtarzający się element historii zatrudnienia). Chcę, aby użytkownik móc dodawać powtarzające się elementy bez konieczności wypełniania pozostałej części formularza w pierwszej kolejności. Tak więc klikając drugi typ zgłoszenia chcę BYPASS the validate();

HTML:

<form method="post" action="" id="ApplicationForm" name="ApplicationForm"> 

    <input id="job1" name="job1" class="required"/> 
    <input type="submit" name="delete_job1" value="Delete" class="delete" /> 

    <input id="job2" name="job2" class="required"/> 
    <input type="submit" name="delete_job2" value="Delete" class="delete" /> 

    <input type="submit" name="add_job" value="Add Job" class="add" /> 

    <input type="submit" name="ApplicationForm" value="Save Details" class="submit" /> 

</form> 

Próbowałem słuchacza dla prawdziwego przedstawienia przycisk poniżej, ale to po prostu zatrzymuje sprawdzić wszystkie togerther;

$(document).ready(function() 
{ 
    var submitPress 

    $(".submit").click(function() 
    { 
     submitPress = true; 
    }); 

    if (submitPress) 
    { 
     $('form#ApplicationForm').validate(); 
    } 
}); 

Przypuszczam, że dzieje się tak, ponieważ funkcja validate(); detektory są konfigurowane przy początkowym ładowaniu strony, a nie po przesłaniu ...

Czy istnieje reguła lub ustawienie dla validate(); Tęsknię za mną, że mogę wykorzystać, a nawet dobry hack z dobrym, starym, zaaranżowanym JS.

Muchos gratias, który może mi pomóc, kończę na moim.

poważaniem, pracy późno, znowu, Twórca

Odpowiedz

23

http://docs.jquery.com/Plugins/Validation/Reference#Skipping_validation_on_submit

zasadzie dodać class="cancel" do przycisków składających które nie chcą wywołać walidacji.

<input type="submit" value="I Validate" /> 
<input type="submit" class="cancel" value="I skip Validation" /> 
+0

Pozdrowienia Chris, to Borsuk ... Nie wiem, jak to przegapiłem. Sądzę, że wczoraj wieczorem weszłam do strefy zmierzchu i musiałam wrócić do domu. –

+0

Sweeeet ... używając jquery mobile, uważam, że może to być atrybut data- *. dzięki @rambo koder – sonjz

+0

Od 2015 roku klasa = "anuluj" jest teraz przestarzała. Teraz dodajesz atrybut "formnovalidate". Kliknij link, aby wyświetlić najnowszą dokumentację. – Ben

0

jej nie działa, ponieważ id podałeś swojego elementu wejściowego, które stają się zmienić jak to submit_1_btnSubmit po stronie obciążenia

tak, aby pozbyć się tego błędu możesz użyć ClientIDMode="Static"

(if you are working on asp.net) 
<asp:Button ID="btnSubmit" runat="server" OnClick="btnSubmit_Click" Text="Submit" CssClass="Submit" ClientIDMode="Static" /> 

else 

you may access `clientIDmode` property on button control dynamically.