2011-02-04 23 views
12

मैं jQuery सत्यापन प्लग-इन का उपयोग कर रहा हूं।jQuery सत्यापन - ओवरराइटिंग कोर सत्यापन विधि

मैं आवश्यक नियम ओवरराइट है के बाद से मेरा निम्नलिखित में के रूप में कुछ कस्टम हालत पर निर्भर करता है:

$.validator.addMethod("required", function(value, element) { 
    console.log("required", element); 

    return someCondition && value != null; 
}, "This is is required."); 

जब प्रपत्र तथापि मान्य है, मुझे लगता है कि "required" प्रत्येक तत्व समारोह अर्थ के लिए दो बार छपा है कहा जाता है दो बार। जैसे ही मैं विधि नाम को "myRequired" में बदलता हूं और निम्न श्रेणी नियम जोड़ता हूं, फ़ंक्शन को केवल एक बार कहा जाना चाहिए।

$.validator.addClassRules({ 
    required : { 
     myRequired: true 
    } 
}); 

ऐसा लगता है कि कोर की आवश्यकता विधि अब भी बरकरार है और कहा जाता है, भले ही मैं एक ही नाम के साथ एक विधि जोड़ें। कोर नियम विधि पूरी तरह से ओवरराइट करने के लिए वैसे भी है?

+1

कौन सा सत्यापन प्लगइन का उपयोग कर रहे। – Hussein

+0

मैं jQuery सत्यापन प्लगइन का उपयोग कर रहा हूँ। –

+0

टॉम, लिंक हमेशा उपयोगी होते हैं, वहां कई "jQuery सत्यापन" प्लगइन्स होते हैं। हालांकि मुझे लगता है कि आप इसका इस्तेमाल कर रहे हैं? http://bassistance.de/jquery-plugins/jquery-plugin-validation/ – Blowsie

उत्तर

18

आप इसे ओवरराइड नहीं कर रहे हैं, लेकिन इसमें एक और तरीका जोड़ रहे हैं। यह ओवरराइड करने के लिए, इस प्रयास करें:

$.validator.methods.required = function(value, element, param) { 
    console.log("required", element); 

    return someCondition && value != null; 
} 
1

आप $.extend उपयोग कर सकते हैं यह करने के लिए:

$.extend($.validator, { 
    required: function(value, element) { 
     console.log("required", element); 
     return someCondition && value != null; 
    } 
}) 
संबंधित मुद्दे