2010-05-04 32 views
7

में ईवेंट प्रतिनिधि को कस्टमाइज़ करना मैं वर्तमान में हमारे प्रोजेक्ट में उपयोग के लिए jQuery सत्यापन प्लग-इन स्थापित कर रहा हूं।jQuery सत्यापन प्लग-इन

डिफ़ॉल्ट रूप से, कुछ ईवेंट स्वचालित रूप से हैंडलिंग के लिए सेट अप होते हैं। अर्थात। फोकस इन/आउट, सभी इनपुट फायर सत्यापन पर घटनाओं को कुंजी करें। मैं चाहता हूं कि सबमिट बटन क्लिक होने पर ही आग लग जाए।

यह कार्यक्षमता प्लग-इन में अंतर्निहित है, जो इसे करने में मुश्किल हो रही है (प्लग-इन कोड को संशोधित किए बिना, मैं जो करना चाहता हूं)।

मैं पाया है eventDelegate समारोह प्लगइन कोड प्रोटोटाइप विधि में कॉल:

 $(this.currentForm) 
      .validateDelegate(":text, :password, :file, select, textarea", "focusin focusout keyup", delegate) 
      .validateDelegate(":radio, :checkbox, select, option", "click", delegate); 

जब मैं मैं अपने परिणाम प्राप्त प्लगइन से इन लाइनों को हटाने, फिर भी मैं बहुत बल्कि कुछ प्लग बाहर करना होगा इसे प्राप्त करने के लिए।

क्या कोई मेरी मदद कर सकता है? अगर आपको और जानकारी चाहिए, तो कृपया मुझे बताएं। मैंने थोड़ी सफलता के साथ Google की खोज की है।

धन्यवाद

संपादित: मैं मूल रूप से प्रपत्र केवल जब प्रस्तुत घटना के सक्रिय होने पर मान्य करने के लिए कोशिश कर रहा हूँ। डिफ़ॉल्ट रूप से, प्लग-इन प्रत्येक इनपुट नियंत्रण में फोकस खो जाने पर मान्य होता है।

उत्तर

7

उत्तर मिला। वैध विधि में विकल्पों के हिस्से के रूप में यह (छुपा?) दूर था।

इस पृष्ठ पर आदि onfocusout विकल्प देखें: http://docs.jquery.com/Plugins/Validation/validate#options

मैं गलत पर सेट कर सकते हैं।

यहाँ मेरी कोड है जो मेरे सत्यापनकर्ता सेट करता है (उम्मीद दूसरों को यह उपयोगी मिल जाएगा):

$(document).ready(function() { 
    $("form").each(function() { 
     $(this).validate({ 
      validateDelegate: function() { }, 
      onsubmit: true, 
      onkeydown: false, 
      onkeyup: false, 
      onfocusin: false, 
      onfocusout: false, 

      errorContainer: "#PanelError", 
      errorLabelContainer: "#PanelError ul", 
      wrapper: "li", 
      ignoreTitle: true, 
      errorClass: "Error", 

      highlight: function(element, errorClass, validClass) { 
       $(element).addClass(errorClass).removeClass(validClass); 
       $(element.form).find("#" + element.id) 
         .addClass(errorClass); 
      }, 
      unhighlight: function(element, errorClass, validClass) { 
       $(element).removeClass(errorClass).addClass(validClass); 
       $(element.form).find("#" + element.id) 
         .removeClass(errorClass); 
      } 
     }); 
    }); 
});