Mam formularz z kilkoma przyciskami i używam wtyczki jQuery Validation z http://jquery.bassistance.de/validate/ . Chcę tylko wiedzieć, czy istnieje sposób, w jaki mogę sprawdzić, czy formularz jest uznawany za ważny przez wtyczkę walidacji jquery z dowolnego miejsca w kodzie javascript.
javascript
jquery
jquery-validate
Jaime Hablutzel
źródło
źródło
Odpowiedzi:
Użyj
.valid()
z wtyczki jQuery Validation:$("#form_id").valid();
Gdzie formularz z
id='form_id'
jest formularzem, który już go.validate()
wywołał.źródło
:)
TypeError valid() not a function
wtyczkę, dodaj wtyczkę do swojego pliku, ponieważ jest to wtyczka nie zawarta w bibliotece jquery, np.<script src="https://cdn.jsdelivr.net/jquery.validation/1.16.0/jquery.validate.min.js"></script>
Odpowiedź z 2015 roku: mamy to prosto z pudełka w nowoczesnych przeglądarkach, po prostu użyj API HTML5 CheckValidity z jQuery. Stworzyłem również moduł jquery-html5-validity, aby to zrobić:
Następnie:
var $ = require('jquery') require("jquery-html5-validity")($);
wtedy możesz biegać:
$('.some-class').isValid() true
źródło
valid
funkcji, ponieważ nie wywołujevalidate
funkcji i nie weryfikuje formularza.@mikemaccana odpowiedź jest przydatna.
Użyłem też https://github.com/ryanseddon/H5F . Znalezione na http://microjs.com . Jest to rodzaj polyfillu i możesz go użyć w następujący sposób (w przykładzie użyto jQuery):
if ( $('form')[0].checkValidity() ) { // the form is valid }
źródło
valid () metoda.
http://docs.jquery.com/Plugins/Validation/valid
źródło
iContribute: Nigdy nie jest za późno na właściwą odpowiedź.
var form = $("form#myForm"); if($('form#myForm > :input[required]:visible').val() != ""){ form.submit(); }else{ console.log("Required field missing."); }
W ten sposób podstawowa walidacja HTML5 dla pól „wymaganych” odbywa się bez zakłócania standardowego przesyłania przy użyciu wartości „name” formularza.
źródło
:input
i:visible
selektory są rozszerzeniami jQuery i nie są częścią CSS. Zobacz szczegóły w dokumentacjiDla grupy wejść możesz użyć ulepszonej wersji opartej na odpowiedzi @ mikemaccana
$.fn.isValid = function(){ var validate = true; this.each(function(){ if(this.checkValidity()==false){ validate = false; } }); };
teraz możesz użyć tego do sprawdzenia, czy formularz jest ważny:
if(!$(".form-control").isValid){ return; }
Możesz użyć tej samej techniki, aby uzyskać wszystkie komunikaty o błędach:
$.fn.getVelidationMessage = function(){ var message = ""; var name = ""; this.each(function(){ if(this.checkValidity()==false){ name = ($( "label[for=" + this.id + "] ").html() || this.placeholder || this.name || this.id); message = message + name +":"+ (this.validationMessage || 'Invalid value.')+"\n<br>"; } }) return message; }
źródło
W przypadku Magento sprawdzanie poprawności formularza odbywa się jak poniżej.
Możesz spróbować tego:
require(["jquery"], function ($) { $(document).ready(function () { $('#my-button-name').click(function () { // The button type should be "button" and not submit if ($('#form-name').valid()) { alert("Validation pass"); return false; }else{ alert("Validation failed"); return false; } }); }); });
Mam nadzieję, że to może ci pomóc!
źródło