2010-11-05 13 views
5

मैं एचटीएमएल 5 डेटा-एट्रिब्यूट्स को सत्यापन नियमों को पास करने के लिए jquery.validate को स्टॉप अंतर के रूप में पास करने के लिए देख रहा हूं जब तक कि प्लगइन को HTML5 समर्थन के साथ अपडेट नहीं किया जाता है। मैं jquery 1.4.2, jquery.validate 1.7 और jquery.validate 2.1 का उपयोग कर रहा हूं। मेरी HTML में मैं इस जैसे कोड का उपयोग कर रहा:jquery.validate, jquery.metadata और html5 डेटा

<input name="foo" type="text" data-validate="{required:true,digits:true}" /> 

मेरी jQuery में मैं कर रहा हूँ निम्नलिखित:

<script type="text/javascript"> 
$.metadata.setType ("html5"); 
$(function() 
{ 
    $('#myForm').validate ({debug:true}); 
}); 
</script> 

यह सिर्फ एक त्रुटि संदेश, validator.methods का कारण बनता है [विधि] है अपरिभाषित

मैंने डेटा-प्रमाणीकरण विशेषता के साथ तत्व पर मेटाडेटा() किया है, और मुझे एक ऑब्जेक्ट लौटाया गया है जिसमें नामित मेरे गुणों के साथ मान्य है, इसलिए मुझे पता है कि मेटाडाटा विशेषता को ढूंढ रहा है और लोड कर रहा है, लेकिन वैध प्लगइन इसे संभालने के लिए प्रतीत नहीं कर सकता है। अगर मैं कक्षा = "{validate: {...}}" पर वापस जाता हूं और HTML 5 का उपयोग करने के लिए मेटाडेटा को कॉन्फ़िगर करने वाली रेखा को टिप्पणी करता हूं, तो यह सब काम करता है जैसा कि यह करना चाहिए।

क्या मैं कुछ गलत कर रहा हूं, या क्या वैध और/या मेटाडेटा प्लगइन के साथ कोई समस्या है?

उत्तर

4

प्रयास करें:

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

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

+0

यह काम करता प्रतीत होता है, हालांकि मुझे यह सुनिश्चित करने के लिए सोमवार को काम पर कोशिश करनी होगी। इसके अलावा, jsfiddle साइट के लिंक के लिए धन्यवाद, मुझे इसे याद रखना होगा। यह एक उपयोगी संसाधन की तरह दिखता है। – GordonM

+0

यह वास्तव में लाइव कोड में काम करता है, इसलिए आपको बहुत धन्यवाद। – GordonM

9

मामले में किसी को भी मैं इन एक साथ प्रयोग करने के लिए मिल गया है jQuery, jQuery मान्य और jQuery मेटाडाटा प्लगइन, प्रलेखन के सभी के एक नए संस्करण का उपयोग कर इस पर चलने वाले दिनांक के बाहर। जबकि jQuery मान्य प्लगइन अभी भी jQuery मेटाडाटा का उपयोग कर सकता है, jQuery मेटाडाटा के नए संस्करण अब "html5" को एक प्रकार के रूप में समर्थन नहीं करते हैं क्योंकि jQuery अब मेटाडेटा के स्रोत के रूप में HTML5 डेटा-विशेषताओं का समर्थन करता है। हालांकि, इसका उपयोग करने के लिए jQuery सत्यापन को अद्यतन नहीं किया गया है।

इस के लिए (समाधान jQuery मान्य निर्मित डेटा- विशेषताओं का उपयोग कर रहा है 'attr' प्रकार का उपयोग करें और अपने डेटा- विशेषता के लिए सीधे बात करने के लिए मेटाडाटा के लिए समर्थन उदाहरण के लिए समर्थन करने के लिए अद्यतन किया जाता है कम से कम जब तक:।

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

सूचना "मेटा" टैग क्योंकि मेटाडाटा पुस्तकालय सीधे सही विशेषता मान को पढ़ने के लिए जा रहा है पारित करने के लिए कोई जरूरत नहीं है यहाँ एक संशोधित jsFiddle पुस्तकालयों के सभी के अद्यतन संस्करण का उपयोग कर रहा है

http://jsfiddle.net/Wcu4L/

+1

क्या मैं इस 100 को ऊपर उठा सकता हूं? मैंने क्लास एट्रिब्यूट से मेटा को कैसे प्राप्त किया है और इस टिप्पणी को हल करने के लिए आधा दिन बिताया। धन्यवाद! – Matt

+0

मैट के साथ सहमत हैं, इससे बड़े समय में मदद मिली है। आश्चर्यचकित डेटा विशेषता को प्लगइन लागू नहीं किया गया है ... – daddywoodland

+0

एक अनियंत्रित मुद्दे के लिए शानदार समाधान, जो सिर्फ पागल ड्राइव करता है। इस 100 को ऊपर उठाने में सक्षम होने पर +1। –

संबंधित मुद्दे