Chcę ręcznie wyzwalać walidację, w tym pokazywać komunikaty o błędach z jQuery Validate .
Scenariusz, który próbuję zrealizować, to taka forma:
<form>
<input id=i1> <button id=b1>
<input id=i2> <button id=b2>
</form>
Po kliknięciu b1
tylko i1
powinno zostać zatwierdzone. b2
tylko kliknięcie i2
powinno zostać zatwierdzone. Jednak wszystkie pola muszą zostać wysłane. W jaki sposób mogę to zrobić? Myślałem o obsłudze zdarzenia kliknięcia b1/b2
i ręcznej walidacji części formularza.
Odpowiedzi:
Wydaje się, że ta biblioteka umożliwia walidację pojedynczych elementów. Po prostu skojarz zdarzenie kliknięcia z przyciskiem i wypróbuj następujące rozwiązania:
Przykłady tutaj:
https://jqueryvalidation.org/Validator.element
źródło
Lub można po prostu użyć:
$('#myElem').valid()
Należy pamiętać, że
validate()
przed sprawdzeniem przy użyciu tej metody należy wywołać formularz.Link do dokumentacji: https://jqueryvalidation.org/valid/
źródło
validate()
musi zostać wywołane w formularzu przed sprawdzeniem go przy użyciu tej metody.Moje podejście było jak poniżej. Teraz chciałem, aby mój formularz został zweryfikowany po kliknięciu / zmianie jednego konkretnego pola wyboru:
źródło
Jak napisano w dokumentacji , sposobem programowego wyzwalania walidacji formularza jest wywołanie funkcji validator.form ()
źródło
Od wersji 1.14 istnieje nieudokumentowana metoda
Ta metoda dyskretnie sprawdza poprawność zwracania wartości prawda / fałsz. Nie wywołuje komunikatów o błędach.
źródło
Eva M z góry, prawie otrzymała odpowiedź, jak napisano powyżej (Dzięki Eva M!):
To jest prawie odpowiedź, ale powoduje to problemy, nawet w najbardziej aktualnej wtyczce do walidacji jquery z 13 grudnia 2018 r. Problem polega na tym, że jeśli ktoś bezpośrednio kopiuje tę próbkę i NIGDY wywołuje ".validate ()" więcej niż raz , fokus / przetwarzanie klucza w walidacji może zostać zerwane, a walidacja może nie pokazywać poprawnie błędów.
Oto, jak użyć odpowiedzi Evy M i upewnić się, że problemy z fokusem / klawiszem / ukrywaniem błędów nie występują:
1) Zapisz swój walidator do zmiennej / globalnej.
2) NIE WZYWAJ $ ("# myform"). Validate () NIGDY ponownie.
Jeśli wywołasz $ ("# myform"). Validate () więcej niż raz, może to spowodować problemy z fokusem / kluczem / ukrywaniem błędów.
3) Użyj zmiennej / globalnej i formularza wywołania.
źródło
W moim podobnym przypadku miałem własną logikę walidacji i po prostu chciałem użyć walidacji jQuery, aby wyświetlić komunikat. To właśnie zrobiłem.
źródło
próbowałem, zadziałało. tnx @ Anastasiosyal Chcę się nim podzielić w tym wątku.
Nie jestem pewien, jak pola wejściowe nie zostały wyzwolone, gdy opróżniłem pola. Ale udało mi się wyzwolić każde wymagane pole indywidualnie za pomocą:
oto mój pogląd
i moja jednostka
źródło
Jest dobry sposób, jeśli używasz
validate()
parametrów w formularzu i chcesz później ręcznie sprawdzić poprawność jednego pola formularza:Dokumentacja: Validator.element ()
źródło