2013-06-15 9 views
8

jQueryValidate के साथ, मैं केवल एक फ़ील्ड आवश्यक करने की कोशिश कर रहा हूं यदि कोई अन्य विशिष्ट फ़ील्ड खाली हो। तो, इंटरनेट पर खोज करने के बाद, मैंने यह किया:jQueryValidate - आवश्यक फ़ील्ड - निर्भर करता है

rules: { 
    marque: { 
      required: { 
       depends: function() { 
        if (($('#add_marque').val() == "Ajouter une marque" && $('#marque').val() == -1) || ($('#add_marque').val() == "" && $('#marque').val() == -1)) { 
         return true; 
        } 
        else { 
         return false; 
        } 
       } 
      } 
    } 
} 

दुर्भाग्यवश, यह काम नहीं करता है। लेकिन, अगर मैं ऐसा करता हूं:

depends: function() { 
    if (($('#add_marque').val() == "Ajouter une marque" && $('#marque').val() == -1) || ($('#add_marque').val() == "" && $('#marque').val() == -1)) { 
      alert("Here!"); 
      return true; 
     } 
     else { 
      return false; 
     } 
} 

अलर्ट बॉक्स दिखाई देता है। तो, मेरा परीक्षण काम करता प्रतीत होता है। क्या कोई मुझे बता सकता है कि मैंने क्या गलत किया? मैं jQuery 1.8.3 और qTip2 का उपयोग jQueryValidate के साथ कर रहा हूं। बहुत बहुत धन्यवाद!

उत्तर

9

प्लगइन का आपका वाक्यविन्यास और उपयोग आपके द्वारा दिए गए कार्यों से सही है। आपको समस्या निवारण की आवश्यकता है, इसलिए पहले इसे

marque: { 
    required: true; 
} 

सरल का प्रयास करें। क्या त्रुटि संदेश प्रकट होता है? यदि हां, तो कोशिश यह

marque: { 
    required: { 
     depends: function() { return true; /* or false */ } 
    } 
} 
+0

आपके उत्तर के लिए धन्यवाद! मैंने यह किया और कुछ भी नहीं हुआ। शायद समस्या यह है कि यह क्षेत्र एक ड्रॉप डाउन सूची है। इसलिए, मैंने एक व्यक्तिगत विधि का उपयोग किया जिसे मैंने दूसरे रूप में उपयोग किया था। यह "सत्य" या "झूठी" के बजाय एक पूर्णांक देता है और अब यह काम कर रहा है। – LancelotKiin

4

आप वास्तव में depends विकल्प के बिना ऐसा करने के लिए, बस required वस्तु पर सीधे समारोह काम करने में सक्षम होना चाहिए: यहाँ सरल उदाहरण

rules: { 
    marque: { 
      required: function() { 
       if (($('#add_marque').val() == "Ajouter une marque" && (('#marque').val() == -1) || ($('#add_marque').val() == "" && $('#marque').val() == -1)) { 
        return true; 
       } 
       else { 
        return false; 
       } 
      } 
    } 
} 

एक काम कर देखें, : http://jsfiddle.net/ryleyb/3hqH6/1/

+2

'if ... else' के बजाय आप आसानी से प्राप्त कर सकते हैं: 'वापसी (अगर यहां स्थित है)' – rybo111

+1

मैं पूछताछ के लिए चीजों को भ्रमित नहीं करना चाहता था - जिस समस्या को मैं हल कर रहा था वह था' नियम ' वस्तु। हालांकि अच्छा मुद्दा! – Ryley

+0

इससे इसी तरह की स्थिति को हल करने में मदद मिली जिसमें मुझे किसी अन्य क्षेत्र के विशिष्ट मूल्य का परीक्षण करने की आवश्यकता थी, जिसके लिए 'निर्भर करता है 'संपत्ति उचित लगती थी। प्रदत्त फ़ंक्शन पर वैलिडेटर की '.all()' विधि को एक त्रुटि का सामना करना पड़ रहा था, लेकिन समान कार्य अपेक्षित के रूप में किए गए बूलियन के बजाय 'आवश्यक' को पास किया गया। –

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