2013-06-13 6 views
5

मेरे पास एक टेक्स्ट बॉक्स है। मैं टेक्स्ट बॉक्स में अमान्य मान दर्ज करने के बाद धुंध पर सत्यापन नहीं करना चाहता हूं, मैं सबमिट बटन पर क्लिक करता हूं।jquery सत्यापन: सबमिट बटन पर फोकस खो जाने पर धुंध (फोकस आउट) सत्यापन पर कैसे रोकें

यदि मैं किसी अन्य नियंत्रण में धुंधला हूं - तो मैं सत्यापन होना चाहता हूं।

विंडोज [डेस्कटॉप] रूपों को इस सटीक स्थिति के लिए "no-causing-validation" के रूप में नियंत्रण निर्दिष्ट करने की अनुमति है।

क्या jquery मान्य में "no-cause-validation" के रूप में नियंत्रण को नामित करना संभव है?

उत्तर

4

हां यह संभव है, लेकिन आपको इसे घोषणात्मक तरीके के बजाय कोड में करना है।

यह ऐसा करने के लिए आप घटना के लिए हैंडलर 'चालू' ओवरराइड करने के लिए है - इस मामले कलंक में (focusout)

here is an example on jsfiddle, इस

तरह एचटीएमएल के साथ इस

$("form").validate({ 
    onfocusout: function (element, event) { 
     if (element.id === "fname") { 
      this.element(element); 
     } 
    } 
}); 

की तरह कोड को मान्य

<form> 
    <label for="fname">First Name</label> 
    <input name="fname" id="fname" class="required number"> 
    <label for="sname">Last Name</label> 
    <input name="sname" id="sname" class="required number"> 
    <input type="submit" /> 
</form> 

यह एक मूल उदाहरण है जो धुंध पर एक फ़ील्ड को मान्य करता है और अन्य क्षेत्र नहीं। आप आगे क्षेत्रों जिन्हें आप सत्यापित करना चाहते हैं पर विशेषताओं के लिए जाँच के द्वारा इस समय लग सकता है, लेकिन सामान्य दृष्टिकोण

  1. ओवरराइड onfocousout है (या onkeyup आदि) एक समारोह
  2. कि समारोह के भीतर
  3. साथ, क्षेत्रों के लिए आप चाहते हैं मान्य करने के लिए, कॉल तत्व (...)

चर्चा इस यहाँ पर - https://github.com/jzaefferer/jquery-validation/issues/564

+0

मुझे लगता है कि मैं क्या चाहते हो नहीं लगता। मैं तत्व फोकस के आधार पर सत्यापन रद्द करना चाहता हूं ** ** **, _not_ तत्व फोकस पर आधारित ** ** से खो गया था। अर्थात। अगर मैं fname से फोकस खो देता हूं और इसे lname पर खो देता हूं - fname validation _should_ होता है। अगर मैं बटन सबमिट करने के लिए फोकस खो देता हूं - तो सत्यापन नहीं होना चाहिए। –

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