2011-07-21 20 views
29

मैं JQuery के लिए नया हूं और JQuery validation plugin का उपयोग कर रहा हूं।jQuery सत्यापन प्लगइन - कस्टम संदेश

मैं पूछना चाहता हूं कि डिफ़ॉल्ट तत्वों को फ़ॉर्म तत्व से जुड़े लेबल में टेक्स्ट को प्रदर्शित करने के लिए कैसे ओवरराइड करना है।

फील्ड पासवर्ड की जरूरत है:

मैं इस तरह संदेश कुछ मिलेगा। डिफ़ॉल्ट के बजाय इस फ़ील्ड को आवश्यक है।

फील्ड पोस्टकोड में कम से कम 3 वर्ण होने चाहिए। डिफ़ॉल्ट के बजाय कृपया कम से कम 3 अक्षर दर्ज करें।

मुझे इस प्लगइन के डिफ़ॉल्ट व्यवहार को ओवरराइड करने की आवश्यकता है, क्योंकि मैं प्रत्येक प्रकार के सत्यापन के लिए प्रत्येक आइटम के लिए कस्टम संदेश निर्दिष्ट नहीं करना चाहता हूं।

क्या यह संभव है?

उत्तर

45
$("#signupform") 
    .validate({ 
     rules: { 
      password: "required", 
      postcode: { 
       required: true, 
       minlength: 3 
      } 
     }, 
     messages: { 
      password: "Field Password is required", 
      postcode: { 
       required: "Field PostCode is required", 
       minlength: "Field PostCode must contain at least 3 characters" 
      } 
    }); 
+0

आपके उत्तर के लिए धन्यवाद लेकिन जैसा कि मैंने कहा: मुझे इस प्लगइन के डिफ़ॉल्ट व्यवहार को ओवरराइड करने की आवश्यकता है, क्योंकि मैं प्रत्येक प्रकार के सत्यापन के लिए प्रत्येक आइटम के लिए कस्टम संदेश निर्दिष्ट नहीं करना चाहता हूं। आपका उत्तर वही है जो मैं नहीं चाहता हूं। – Detonator

+0

@ मार्टिन: क्षमा करें, उस बिट को याद किया। खैर, डिफ़ॉल्ट संदेशों को ओवरराइट करने के लिए मैं आपके लिए एकमात्र तरीका देख सकता हूं, प्लगइन को संपादित करके, जिसे मैं अनुशंसा नहीं करता हूं। देखें कि ['अवैध हैंडलर'] (http://docs.jquery.com/Plugins/Validation/validate#toptions) आपके लिए काम करेगा, अन्यथा विकल्प यहां सीमित प्रतीत होते हैं। – Shef

+3

इस तरह से विशेष इनपुट के लिए विशेष संदेश सेट करना भी संभव है: 'data-msg-required =" कृपया अपना ईमेल पता दर्ज करें "या' डेटा-msg-email = "कृपया HTML मार्कअप में एक वैध ईमेल पता दर्ज करें" । –

4

मुझे एक ही काम करने की ज़रूरत है, और एक कस्टम विधि बनाने के लिए समाप्त हो गया ताकि उसका संदेश कई रूपों में साझा किया जा सके।

मैं एक ऐसी ही स्टैक ओवरफ़्लो सवाल में इस सवाल का जवाब मिला: How can we specify rules for jquery validation plugin by class?

$.validator.addMethod(
    "newEmail", //name of a virtual validator 
    $.validator.methods.email, //use the actual email validator 
    "Custom error message" 
); 
16

यह है कि मैं क्या पाया जब मैं एक ही बात के लिए देख रहा था कुछ दिनों के पहले है। दुर्भाग्यवश मुझे याद नहीं आया कि मुझे यह कहां मिला, इसलिए मैं उस व्यक्ति को नहीं दे सकता जिसने उत्तर क्रेडिट लिखा था।

jQuery.extend(jQuery.validator.messages, { 
    required:"This field is required.", 
    equalTo:"Password fields do not match.", 
    email:"Please enter a valid email.", 
}); 
+0

http: // stackoverflow।कॉम/ए/2457053/3416443 - यह सही लिंक है – Muarl

4

इसे प्राप्त करने के लिए एक और संक्षिप्त तरीका है।

उपयोग "डेटा-msg" या "डेटा-msg- (rulename)" एक पूर्वनिर्धारित नियम या कोई कस्टम नियम के लिए डिफ़ॉल्ट त्रुटि संदेश ओवरराइड करने के लिए। (JQuery सत्यापन v1.11.0 के बाद, वर्तमान में v1.16.0)

<input id="pwd" name="pwd" type="password" value="" 
     required 
     data-msg-required="Field Password is required." /> 

<input id="postcode" name="postcode" type="text" value="" 
     required 
     data-msg-required="Field PostCode is required." 
     minlength="3" 
     data-msg-minlength="Field PostCode must contain at least 3 characters." /> 
+1

अब तक का सबसे अच्छा जवाब यदि आपको केवल एक या दो त्रुटि संदेशों को कस्टमाइज़ करने की आवश्यकता है! – AlexisWbr

0

प्लगइन के बाद इस जोड़ें:

jQuery.extend(jQuery.validator.messages, { 
    required: "Your new default message", 
    email: "That's not a valid email" 
}); 

आप इसे एक अलग फाइल में डाल अगर तुम चाहते हो सकता है, लेकिन यह सुनिश्चित कर लें प्लगइन के बाद इसे शामिल किया गया है

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