/ / JQuery मान्य नहीं (विनीत नहीं) के साथ चुना चयन को मान्य नहीं कर सकता [अनुलिपि] - jquery, asp.net-mvc-4, jquery-validate, jquery-चुनी

JQuery के मान्य (विनीत नहीं) के साथ चुना हुआ को मान्य नहीं किया जा सकता [अनुलिपि] - jquery, asp.net-mvc-4, jquery-validate, jquery-चुनी गई

मैं अपने ASP.NET MVC 4 एप्लिकेशन में सरल ड्रॉपडाउनलिस्ट सत्यापन (स्पष्ट jQuery - कोई विनीत नहीं) बनाने की कोशिश कर रहा हूं।

मेरे पास मॉडल हैं:

[DisplayName("Wybierz płatnika")]
public virtual int? studyPayerId { get; set; }
public virtual IList<StudyPayer> PayersList { get; set; }

फिर नियंत्रक में मैं:

var payers = RisDbPersistanceManager.RetrieveEquals<StudyPayer>("IsActive", true);
if (payers != null)
{
model.PayersList = payers;  // it is populated
}
model.studyPayerId = null;

और मेरे दृश्य में:

<script src="@Url.Content("~/Scripts/jquery.validate.js")" type="text/javascript"></script>

...

$("#studyPayerId").rules("add",
{
required: true,
messages: {
required: "Proszę wybrać płatnika!"
}
});
...
<div class="formsElement" >
<div class="formsElementLabel" >
@Html.LabelFor(x => x.studyPayerId)
</div>
<div class="formsElementInput" >
@Html.DropDownListFor(x => x.studyPayerId, new SelectList(Model.PayersList, "Id", "Name", Model.studyPayerId), "-- wybierz płatnika --")
@Html.ValidationMessageFor(x => x.studyPayerId)
</div>
</div>

सरल टेक्स्टबॉक्स फ़ील्ड में सब कुछ काम करता है -सबमिट बटन पर मेरे क्षेत्र को मान्य करता है। लेकिन DropDownList कोई भी संदेश प्रदर्शित नहीं करता है जब मैंने कुछ भी नहीं चुना और छोड़ दिया "- wybierz płatnika -" चयन।

संपादित करें

  <select id="Gender" class="error" name="Gender" style="display: none;">
<label class="error" for="Gender">Proszę wybrać płeć!</label>
<div id="Gender_chosen" class="chosen-container chosen-container-single chosen-container-single-nosearch" style="width: 127px;" title="">
<a class="chosen-single" tabindex="-1">
<span>-- nieokreślona --</span>
<div>
</a>
<div class="chosen-drop" style="top: 34px; bottom: auto;">
</div>

उत्तर:

जवाब के लिए 2 № 1
  1. यह जावास्क्रिप्ट है इसलिए आपको "हमें दिखाने की आवश्यकता होगी।" गाया और ब्राउज़र द्वारा देखा गया प्रासंगिक HTML कोड, न कि आपका मॉडल, दृश्य या नियंत्रक। चूंकि मैं आपके प्रदान किए गए HTML को नहीं देख सकता, इसलिए मैं अपने डेमो कोड में जेनेरिक नामकरण का उपयोग करता हूं।

    • सबसे पहला option तत्त्व जरूर लीजिये value="" विशेषता।
    • The select तत्त्व जरूर लीजिये name विशेषता भले ही आप "इसका उपयोग न करें।

  2. मैं "नहीं देखने के लिए अपने फोन .validate() विधि. प्लगइन जरूर पहले के साथ शुरू हो जाओ .validate() विधि. आप उपयोग नहीं कर सकते .rules() इसके बिना विधि।

jQuery:

$(document).ready(function () {

$("#myform").validate(); // <- INITIALIZE plugin

$("#studyPayerId").rules("add", {
required: true,
messages: {
required: "Proszę wybrać płatnika!"
}
});

});

HTML का प्रतिपादन किया:

<form id="myform">
<select name="myselect" id="studyPayerId">
<option value="">-- wybierz płatnika --</option>
<option value="1">option 1</option>
</select>
<br/>
<input type="submit" />
</form>

काम कर रहे डेमो: http://jsfiddle.net/nwLqdemu/


मुझे समझ में नहीं आता कि तुम क्यों "का उपयोग कर रहे है .rules() विधि. आमतौर पर है कि "एस केवल जब नियमों को जोड़ने और हटाने की जरूरत है इस्तेमाल किया जाता है गतिशील; या जब नियम एक बार में तत्वों के एक पूरे समूह के लिए लागू हो, क्योंकि वह भी लंबा होगा के भीतर शामिल किया जाएगा .validate() तरीका।

अन्यथा, आप "डी बस के भीतर नियमों की घोषणा .validate() प्रारंभिक पर विधि ...

$(document).ready(function () {

// INITIALIZE plugin

$("#myform").validate({
rules: {
myselect: {  // <- NAME attribute
required: true
}
},
messages: {
myselect: {  // <- NAME attribute
required: "Proszę wybrać płatnika!"
}
}
});

});

वर्किंग डेमो 2: http://jsfiddle.net/nwLqdemu/1/


कृपया एक बुनियादी डेमो के लिए एसओ टैग विकी पेज देखें और उचित उपयोग पर संकेत दें।


संपादित करें:

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