dati jquery.validate, jquery.metadata e html5

Sto cercando di utilizzare gli attributi dei dati html5 per passare le regole di validazione a jquery.validate come interruzione fino a quando il plugin non viene aggiornato con il supporto HTML5. Sto usando jquery 1.4.2, jquery.validate 1.7 e jquery.validate 2.1. Nel mio codice HTML sto usando un codice come questo:

 

Nel mio jQuery sto facendo quanto segue:

  $.metadata.setType ("html5"); $(function () { $('#myForm').validate ({debug:true}); });  

Questo causa solo un messaggio di errore, validator.methods [metodo] non è definito

Ho fatto un metadata () sull’elemento con l’attributo data-validate, e ho ottenuto un object restituito con nome validate con i miei attributi impostati in esso, quindi so che i metadati stanno trovando l’attributo e il caricamento da esso, ma il plugin di convalida può sembra che gestirlo. Se torno alla class = “{validate: {…}}” e commenta la riga che configura i metadati per utilizzare l’HTML 5, tutto funziona come dovrebbe.

Sto facendo qualcosa di sbagliato, o c’è un problema con i plugin di validazione e / o metadati?

Provare:

 $.metadata.setType("html5"); $('#myForm').validate({ meta: "validate" }); 

http://jsfiddle.net/petersendidit/5YND2/

Nel caso in cui qualcuno si imbattesse in questo usando una versione più recente di jQuery, jQuery Validate e il plug-in di metadati jQuery, tutta la documentazione che ho trovato per usarli insieme non è aggiornata. Mentre il plugin jQuery Validate può ancora utilizzare jQuery Metadata, le versioni più recenti di jQuery Metadata non supportano più “html5” come tipo perché jQuery ora supporta in modo nativo gli attributi di dati HTML5 come fonte di metadati. Tuttavia, jQuery Validate non è stato aggiornato per poterlo utilizzare.

La soluzione per questo (almeno fino a quando jQuery Validate viene aggiornato per supportare il supporto integrato per i metadati utilizzando gli attributi dei dati è quello di utilizzare il tipo ‘attr’ e puntare direttamente al proprio attributo data.Ad esempio:

 $.metadata.setType("attr", "data-validate"); $("form").validate(); 

Si noti che non è necessario passare il tag “meta” perché la libreria dei metadati va direttamente all’attributo corretto per leggere i valori. Ecco un jsFiddle modificato che utilizza le versioni aggiornate di tutte le librerie:

http://jsfiddle.net/Wcu4L/