Mam formularz, który można opcjonalnie wstępnie wypełnić przez połączenie z Facebookiem. Gdy użytkownik się połączy, jego imię i nazwisko oraz adres e-mail są automatycznie wypełniane. Problem polega na tym, że nie powoduje to zdalnej weryfikacji w celu sprawdzenia, czy e-mail już istnieje.
Czy istnieje sposób, w jaki mógłbym wywołać walidację tylko w tym polu? Coś jak:
$('#email-field-only').validate()
byłby pomysł. Przeszukałem dokumenty bez powodzenia.
$('input[name=email-field-only]').valid();
Działa równieżZastosowanie
Validator.element()
:Oto przykład pokazany w API:
var validator = $( "#myform" ).validate(); validator.element( "#myselect" );
.valid()
potwierdza cały formularz, jak zauważyli inni. API mówi:źródło
Z jakiegoś powodu niektóre inne metody nie działają, dopóki pole nie zostanie skoncentrowane / zamazane / zmienione lub nie zostanie podjęta próba przesłania ... to działa dla mnie.
$("#formid").data('validator').element('#element').valid();
Musiałem przekopać się przez skrypt jquery.validate, aby go znaleźć ...
źródło
.valid()
na końcu, więc szukało mnie$("#Form").data('validator').element('input[name=__Suburb]').valid();
, wierzę, że jeśli nie wybierzesz tego po ID, może to być wymagane..valid()
należało na końcu wyrażenia..element()
Zwraca logiczną wynik ( docs | src ). Kiedy próbuję wywołać .valid (), pojawia się komunikat o błędzie: „Uncaught TypeError:$(...).data(...).element(...).valid
is not a function”$("#FormId").validate().element('#FieldId');
źródło
Podczas konfigurowania walidacji powinieneś zapisać obiekt walidatora. możesz użyć tego do walidacji poszczególnych pól.
<script type="text/javascript"> var _validator; $(function () { _validator = $("#form").validate(); }); function doSomething() { _validator.element($('#someElement')); } </script>
- z krzyżem tym podobnym pytaniem
źródło
Jeśli chcesz walidować poszczególne pola formularza, ale nie chcesz, aby UI był wyzwalany i wyświetlał jakiekolwiek błędy walidacji, możesz rozważyć użycie metody Validator.check (), która zwraca, jeśli dane pole przeszło walidację lub nie.
Oto przykład
var validator = $("#form").data('validator'); if(validator.check('#element')){ /*field is valid*/ }else{ /*field is not valid (but no errors will be displayed)*/ }
źródło
w przypadku, gdy chcesz przeprowadzić walidację dla "niektórych elementów" (nie wszystkich elementów) w swoim formularzu. Możesz użyć tej metody:
$('input[name="element-one"], input[name="element-two"], input[name="element-three"]').valid();
Mam nadzieję, że pomoże wszystkim :)
EDYTOWANO
źródło
$("#element").validate().valid()
źródło