come verificare se un modulo è valido a livello di codice utilizzando jQuery Plugin di convalida

Ho un modulo con un paio di pulsanti e sto usando jQuery Validation Plugin da http://jquery.bassistance.de/validate/ , e voglio solo sapere se c’è un modo per controllare se il modulo è considerato in stato di validità tramite plugin di validazione jquery da qualsiasi posizione nel mio codice javascript.

Usa .valid() :

 $("#form_id").valid(); 

Controlla se il modulo selezionato è valido o se tutti gli elementi selezionati sono validi. validate () deve essere chiamato sul modulo prima di controllarlo usando questo metodo.

Dove il modulo con id='form_id' è un modulo che ha già avuto .validate() chiamato su di esso.

Risposta del 2015: abbiamo questo prontuario sui browser moderni, basta usare l’ API CheckValidity HTML5 di jQuery. Ho anche realizzato un modulo jquery-html5-validity per fare questo:

 npm install jquery-html5-validity 

Poi:

 var $ = require('jquery') require("jquery-html5-validity")($); 

allora puoi eseguire:

 $('.some-class').isValid() true 

La risposta @mikemaccana è utile.

E ho anche usato https://github.com/ryanseddon/H5F . Trovato su http://microjs.com . È una sorta di polyfill e puoi usarlo come segue (jQuery è usato nell’esempio):

 if ( $('form')[0].checkValidity() ) { // the form is valid } 

Per un gruppo di input è ansible utilizzare una versione migliorata basata sulla risposta di @ mikemaccana

 $.fn.isValid = function(){ var validate = true; this.each(function(){ if(this.checkValidity()==false){ validate = false; } }); }; 

ora puoi usare questo per verificare se il modulo è valido:

 if(!$(".form-control").isValid){ return; } 

È ansible utilizzare la stessa tecnica per ottenere tutti i messaggi di errore:

 $.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
"; } }) return message; }

iContribute: non è mai troppo tardi per una risposta giusta.

 var form = $("form#myForm"); if($('form#myForm > :input[required]:visible').val() != ""){ form.submit(); }else{ console.log("Required field missing."); } 

In questo modo la convalida HTML5 di base per i campi “richiesti” avviene senza interferire con l’invio standard utilizzando i valori del “nome” del modulo.

Per Magento, controlli la validazione del modulo con qualcosa di simile in basso.

Puoi provare questo:

 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; } }); }); }); 

Spero che questo possa aiutarti!