2009-07-05 10 views
7

मैं कुछ सत्यापन स्थापित करने की कोशिश कर रहा हूं, ताकि यदि 'हां' रेडियो बटन को दूसरे नियंत्रण की जांच की जाये, तो यह सुनिश्चित करने के लिए ड्रॉप डाउन सूची को सत्यापित करने की आवश्यकता है कि यह सेट नहीं है सूची में डिफ़ॉल्ट पहली प्रविष्टि के लिए "कृपया चुनें ..."।jQuery.Validate सशर्त सत्यापन रेडियोबटन और ड्रॉपडाउनलिस्ट

मैंने कई संयोजनों की कोशिश की है लेकिन यह काम करने में सक्षम नहीं है। सत्यापन संदेश दिखाता है कि चेक बॉक्स चेक किया गया है या नहीं।

कुछ कोड है!

यह एक कस्टम तरीका है जिसका उपयोग मैं अपनी ड्रॉप डाउन सूचियों को सत्यापित करने के लिए करता हूं। (यह सरल DDL सत्यापन के लिए ठीक काम करता है)

$.validator.addMethod(
    "selectNone", 
    function(value, element) { 
     return this.optional(element) || element.value != "Please Select..."; 
    }, 
    "Please select an option." 
); 

चेकबॉक्स के आधार पर सत्यापन करने के लिए मैं प्रपत्र

$(document).ready(function() { 
     var validator = $("#BuildingsCoverForm").validate({ 
      rules: { 
       NCBYears: { 
        selectNone: function(element) { 
         return $("*[name='PreviousInsurance']")[0].checked; 
        } 
       } 

      }, 
      messages: { 
       NCBYears: { 
        selectNone: "This field is required" 
       } 
      } 
     }); 
    }); 

के लिए कोई नियम जोड़ा और यहाँ नियंत्रण है।

<p> 
     <label for="PreviousInsurance" class="halfstretch">Do you have any previous insurance?</label> 
     <%= Html.YesNoControl("PreviousInsurance", Model.PreviousInsurance)%> 
    </p> 
    <p> 
     <label for="NCBYears" class="halfstretch">Building No Claim Bonus</label> 
     <%= Html.DropDownList("NCBYears", ViewData["NCBYears"] as SelectList)%> 
    </p> 

किसी भी विचार की बहुत सराहना की जाएगी।

कई धन्यवाद

उत्तर

23

जब तक पहले ड्रॉप-डाउन सूची विकल्प के लिए एक खाली मूल्य (<option value="">some text</option>), है निम्नलिखित नियम काम करेंगे:

rules: { 
    NCBYears: { 
    required: function(element) { 
     return $("input:radio[name='PreviousInsurance']:checked").val() == 'yes'; 
    } 
    }     
} 

से: http://docs.jquery.com/Plugins/Validation/Methods/required#dependency-expression

+0

लेकिन इसमें "कृपया चुनें ..." नहीं है और इसे – andyJ

+0

रहना है केवल विकल्प मान खाली होना चाहिए, पाठ नहीं। यदि नियंत्रण ऐसा नहीं कर सकता है, तो मूल्य को रिक्त स्थान पर खाली करने के लिए jquery का उपयोग करें। – ScottE

-1

यह नहीं है Validate.js के मौजूदा संस्करण के साथ काम करें (वी 1.7)

मैं यह भी साबित करने में सक्षम था कि यह अवधारणा काम नहीं करती है:

rules: { 
    xyz: { 
    required: function(element) { 
     return true; 
    } 
    }     
} 

यह भी विफल रहता है।

+1

नहीं - उस पर ध्यान न दें। यह पता चला कि मैं xyz शुद्ध के बजाय xyz (कुछ पाठ के साथ प्रीसेट - "कृपया एक तिथि का चयन करें") के व्युत्पन्न की जांच कर रहा था। – Nigel

1

स्कॉटई सही है। मेरे पास डेटाबेस से आबादी वाली एक ड्रॉपडाउनलिस्ट है और मैंने सूची के शीर्ष पर एक आइटम जोड़ा है और इसे "" का मान दिया है। जब आप इनपुट को मान्य करते हैं तो ड्रॉपडाउन सूची को खाली होने के विरुद्ध मान्य करें। यदि आप कभी भी नहीं बदलते हैं और रिक्त मूल्य के साथ शीर्ष पर एक आइटम जोड़ते हैं, तो नीचे दिए गए उदाहरण के साथ आप सूची को हार्ड कोड भी कर सकते हैं।

_example.Add(new SelectListItem { Text = "Select Example", Value = ""}); 
संबंधित मुद्दे