2012-10-17 16 views
8

की विधि 'कॉल' को कॉल नहीं कर सकता है यह त्रुटियां मुझे पागल कर रही हैं, सबकुछ क्रम में प्रतीत होता है, लेकिन उम्मीद है कि मुझे कुछ आसान याद आ रहा है।jQuery प्रमाणीकरण अपरिभाषित

मेरी aspx में

कोड

 $('#myForm').validate({ 
      rules: { 
       'ctl00$SecondaryPlaceHolder$txPayloadDate': { 
        required: true, 
        date: true 
       }, 
       'ctl00$SecondaryPlaceHolder$ddlMapPlat': { 
        required: true 
       }, 
       'ctl00$SecondaryPlaceHolder$txtBlock': { 
        maxLength: 3 
       }, 
       'ctl00$SecondaryPlaceHolder$txtLeakNumber': { 
        number: true, 
        maxLength: 27 
       }, 
       'ctl00$SecondaryPlaceHolder$txtHouseNumber': { 
        required: true, 
        maxLength: 10, 
       }, 
       'ctl00$SecondaryPlaceHolder$txtStreet': { 
        required: true, 
        maxLength: 100 
       }, 
       'ctl00$SecondaryPlaceHolder$txtCity': { 
        required: true, 
        maxLength: 50 
       }, 
       'ctl00$SecondaryPlaceHolder$txtReading': { 
        isPositiveInteger: true, 
        maxLength: 100 
       }, 
       'ctl00$SecondaryPlaceHolder$ddlInfoCodes': { 
        existsWithLowReading: true 
       }, 
       'ctl00$SecondaryPlaceHolder$txtLocationRemarks': { 
        maxLength: 500 
       }, 
       'txtGrade2RequestedRepairDate': { 
        date: true 
       }, 
       'ctl00$SecondaryPlaceHolder$ddlEquipment': { 
        required: true 
       } 
      } 
     }); 

कस्टम सत्यापन

$.validator.addMethod("isPositiveInteger", 
    function (value, element) { 
     if($.trim(value) !== '') 
      return /^\d+$/.test(value); 
     return true; 
    }, 
    "Must be a valid integer." 
); 


$.validator.addMethod("existsWithLowReading", 
    function (value, element) { 
     if (parseFloat($('#SecondaryPlaceHolder_txtReading').val() <= 2) && value.length < 1) { 
      return false; 
     } 
     return true; 
    }, 
    "Info Code required if Reading % is less than three." 
); 

असल मुद्दा कस्टम सत्यापन के बाहर है, लेकिन मैं उन्हें यहाँ वैसे भी फेंक दिया ... प्रपत्र ठीक जब मान्य है सबमिट करना, लेकिन कुछ 'हाउस नंबर' और 'स्ट्रीट' हैं जो इन त्रुटियों को भरने की कोशिश करते समय फेंक देते हैं।

उदाहरण के लिए, मैं एक खाली सड़क एन के साथ फॉर्म जमा करता हूं umber, सत्यापन कार्य करता है, लेकिन जब मैं इनपुट भरता हूं, धुंध पर यह त्रुटि फेंक दी जाती है।

त्रुटि var rule = { method: method, parameters: rules[method] } लाइन पर यहाँ jquery.validate में है:

check: function (element) { 
      element = this.validationTargetFor(this.clean(element)); 

      var rules = $(element).rules(); 
      var dependencyMismatch = false; 
      var val = this.elementValue(element); 
      var result; 

      for (var method in rules) { 
       var rule = { method: method, parameters: rules[method] }; 
       try { 

        result = $.validator.methods[method].call(this, val, element, rule.parameters); 

        // if a method indicates that the field is optional and therefore valid, 
        // don't mark it as valid when there are no other rules 
        if (result === "dependency-mismatch") { 
         dependencyMismatch = true; 
         continue; 
        } 
        dependencyMismatch = false; 

        if (result === "pending") { 
         this.toHide = this.toHide.not(this.errorsFor(element)); 
         return; 
        } 

        if (!result) { 
         this.formatAndAdd(element, rule); 
         return false; 
        } 
       } catch (e) { 
        if (this.settings.debug && window.console) { 
         console.log("exception occured when checking element " + element.id + ", check the '" + rule.method + "' method", e); 
        } 
        throw e; 
       } 
      } 

किसी भी संकेत दिए गए

के लिए अग्रिम धन्यवाद
+0

=== –

+0

के बजाय indexOf का उपयोग करने के लिए बेहतर प्रदर्शन करने के लिए (परिणाम.indexOf ("निर्भरता-मिलान")> -1) –

+0

सामग्री प्लेस धारकों को हटाकर अपने चयनकर्ताओं को भी बदलें ... इसके बजाय कुछ ऐसा 'ctl00 $ सेकेंडरीप्लेसहोल्डर $ txPayloadDate' यह करें '[id * = txPayloadDate]' –

उत्तर

12

मेरी ओर से बेवकूफ टाइपो अपराधी

maxLength ऊंट नहीं है था cased, और अधिकतम लम्बाई होना चाहिए

यद्यपि बराबर के ऊंट के समान है ... असंगत लगता है, लेकिन खुशी है कि मैंने इसे

+7

युक! प्लगइन लेखक औपचारिक रूप से defrocked होना चाहिए। –

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