2010-08-15 12 views
9

पर छिपे हुए तत्वों को सत्यापित करना मेरे पास एक ऐसा फॉर्म है जिसमें "क्या आप अपने शिपिंग पते के समान बिलिंग पते" फ़ील्ड करते हैं। यदि उपयोगकर्ता रेडियो बटन "नहीं" पर क्लिक करता है तो छुपा उल # बिलिंग पता दिखाया जाता है। उल # बिलिंग में निहित फ़ील्ड एड्रेस की आवश्यकता होती है यदि यह दिखाई दे, तो यह है कि उल ने प्रदर्शन किया है: ब्लॉक।jQuery प्लग इन मान्य करें - केवल

मैं jquery validate.js के लिए कस्टम addMethod कैसे लिखूं, जिसके लिए केवल फ़ील्ड दिखाई दे सकती है? यही वह है जो मेरे पास काम नहीं कर रहा है।

$.validator.addMethod ("BillingSameAsShipping", function(value, element) { 
    var billingFields = ['billingAddress1','billingAddress2','billingCity','billingState','bilingZip'] 
    if ($("#billingAddress").is('visible') && billingFields.val('') { 
     return false; 
    } else 
     return true; 
}, "Please fill in the required billing information"); 

यह स्पष्ट रूप से जैक किया गया है। मुझे इसे var में मौजूद प्रत्येक के लिए काम करने की ज़रूरत है।

धन्यवाद!

+0

क्या आपने उन्हें न केवल अदृश्य बनाने की कोशिश की है, बल्कि उन्हें अक्षम करने की भी कोशिश की है? यह सिर्फ एक अनुमान है, लेकिन चूंकि अक्षम फॉर्म फ़ील्ड वैसे भी प्रसारित नहीं किए जाएंगे, इसलिए मैं उम्मीद करता हूं कि उन पर कोई सत्यापन नहीं होता है। – Tomalak

+0

मुझे उन्हें अक्षम करने की ज़रूरत नहीं है, मैं बस उन्हें दृश्यमान होने पर ही सत्यापित करना चाहता हूं। उन्हें अक्षम करने तक आसान नहीं है? –

+0

मेरा मतलब है कि उन्हें अदृश्य * और * अक्षम दोनों बनाते हैं। JQuery के साथ, यह काफी आसान है। – Tomalak

उत्तर

19

दृश्यमान जांच के साथ समस्या यह हिस्सा है: .is('visible') यह का उपयोग करने के लिए .is(':visible') होना चाहिए।


एक विकल्प के रूप में, आप आप क्या एक सा इस तरह आसान, करना चाहते हैं ignore option उपयोग कर सकते हैं:

$("#myForm").validate({ 
    //other options 
    ignore: ':hidden' 
}); 

यह दृष्टिकोण आप मानक आवश्यक नियमों का उपयोग अगर आप चाहते हैं देता है।

+0

हमेशा निक के रूप में बहुत बढ़िया होने के कारण, केवल उन्हें दृश्यमान होने की आवश्यकता होगी। थक्स आदमी! –

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