2011-11-08 9 views
8

सबमिट कर रहा हूं मैं jquery सत्यापन प्लगइन ऑनकीप, या ऑनफोकसआउट विकल्पों के साथ काम करने की कोशिश कर रहा हूं। प्रत्येक बार जब मैं इन विकल्पों को जोड़ता हूं और उनमें से एक को ट्रिगर करता हूं तो मुझे एक त्रुटि मिलती है। यदि मैं अपना फॉर्म जमा करता हूं तो सत्यापन कार्य करता है।f.settings [g] .call कुछ भी नहीं है लेकिन सत्यापन

मुझे वास्तव में जिस फॉर्म पर काम कर रहा है उसे पोस्ट करने की अनुमति नहीं है, हालांकि मैंने एक बहुत ही सरल रूप से इसी तरह के मुद्दों को बनाया है कि मैं उपनिर्देशिका स्थिर/जेएस/के तहत सभी जेएस के साथ एक निर्देशिका में लोड हो रहा था।

मैं jQuery 1.6.2 और jQuery मान्यता का उपयोग कर रहा 1.9.0

कोई भी किसी भी विचार किया है?

<html> 
<script type="text/javascript" src="static/js/jquery.js"></script> 
<script type="text/javascript" src="static/js/jquery.validate.js"></script> 

<script type="text/javascript"> 
$(document).ready(function(){ 

    var validator = $('#submitform').validate({ 
     rules: { 
      name: 'required', 
      phone: { 
       required: true, 
       minlength: 12 
      }, 
      team: { 
       required: true, 
       minlength: 1 
      }, 
      fax: { 
       required: true, 
       minlength: 12 
      } 
     }, 
     messages: { 
      name: 'Your name is required', 
      phone: 'Your phone number is required', 
      team: 'Your extension number is required', 
      fax: 'Your fax number is required' 
     }, 
     // the errorPlacement has to take the table layout into account 
     errorPlacement: function(error, element) { 
      if (element.is(":radio")) 
       error.appendTo(element.parent().next().next()); 
      else if (element.is(":checkbox")) 
       error.appendTo (element.next()); 
      else 
       error.appendTo(element.parent()); 
     }, 
     onfocusout: true, 
     // specifying a submitHandler prevents the default submit, good for the demo 
     submitHandler: function() { 
      alert("submitted!"); 
     }, 
     // set this class to error-labels to indicate valid fields 
     success: function(label) { 
      // set as text for IE 
      label.html(" ").addClass("checked"); 
     } 
    }); 
}); 
</script> 

<form id="submitform" action="."> 

<label for="name">Your Name:</label> 
<input id="ins_name" type="text" name="name" maxlength="40" /> 

<label for="phone">Phone:</label> 
<input name="phone" maxlength="14" type="text" id="phone" /> 

<label for="extension">Extension:</label> 
<input name="extension" maxlength="10" type="text" id="extension" /> 

<label for="fax">Fax:</label> 
<input name="fax" maxlength="14" type="text" id="fax" /> 

<input type="submit" value="Submit"> 
</form> 
+0

मुझे लगता है कि ऑनफोकसआउट एक कार्य होना चाहिए। – AutoSponge

+0

दस्तावेज़ों के मुताबिक यह सिर्फ एक विकल्प है - http://docs.jquery.com/Plugins/Validation/validate#toptions – grantk

+0

विकल्प कॉन्फ़िगरेशन ऑब्जेक्ट के गुण हैं, उनके मूल्य कुछ भी कर सकते हैं। इस मामले में, मुझे लगता है कि यह प्रकार काम करना चाहिए क्योंकि यह एक ईवेंट हैंडलर (यह jQuery में आम है) के लिए है और यह सिर्फ दस्तावेज नहीं किया गया था (अधिकांश प्लगइन्स की तरह)। – AutoSponge

उत्तर

14

जैसा ऊपर बताया गया है, दस्तावेज़ीकरण त्रुटिपूर्ण है। आपको वास्तव में onfocusout विकल्प को उस फ़ंक्शन पर सेट करने की आवश्यकता है जो पैरामीटर के रूप में मान्य तत्व को स्वीकार करता है।

$("#form").validate({ 
    onfocusout: function(element) {$(element).valid()} 
}); 
1

मेरे मामले में एक लाइन onkeyup: true था तो मैं false

onkeyup: false 

में बदल लेकिन मैं अभी भी पता नहीं है जब त्रुटि आने लगा: यहाँ एक काम कोड नमूना है। :)

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