से सभी चयनित मान प्राप्त करें मैं अपने vb.net पृष्ठ के लिए जावास्क्रिप्ट में एक कस्टम सत्यापनकर्ता को कार्यान्वित करने की कोशिश कर रहा हूं। इस सत्यापनकर्ता को यह जांचना चाहिए कि मल्टीचॉइस सूची बॉक्स में कोई चयनित मान नहीं है, यदि कोई त्रुटि पॉप अप दिखाती है।ListBox (क्लाइंट साइड)
बात यह है कि, मैं इसे क्लाइंट पक्ष करना चाहता हूं, लेकिन मेरे 'validateFunction' फ़ंक्शन में मुझे केवल अंतिम चयनित (या अचयनित, अगर इसे पहले से चुना गया था) आइटम मिलता है। मुझे पता है कि कोड-कोड कोड में इसे कैसे किया जाए, लेकिन मैं इसे क्लाइंट-साइड करना चाहता हूं।
aspx कोड:
<asp:ListBox ID="lbEdit" runat="server" SelectionMode="Multiple">
</asp:ListBox>
<asp:CustomValidator id="cvEdit" runat="server" Display="None" ControlToValidate="lbEdit" ClientValidationFunction="validateFunction"/>
<ajax:ValidatorCalloutExtender runat="server" ID="vceEdit" TargetControlID="cvEdit" />
जावा स्क्रिप्ट कोड:
function validateFunction(source, arguments) {
var options = document.getElementById(source.controltovalidate).options;
for (var i = 0; i < options.length; i++) {
if (options[i].selected == true) {
args.IsValid = true;
return;
}
}
args.IsValid = false;
}
जैसा कि मैंने कहा, के बाद से पिछले (अन) चयनित आइटम केवल 'विकल्प' में चयनित हो जाएगा सरणी, सत्यापन समारोह हमेशा सच हो जाएगा ...
मैंने एक और arra populating के बारे में सोचा y एक अन्य जावास्क्रिप्ट फ़ंक्शन में 'सही चयनित सरणी' के रूप में और प्रत्येक बार फ़ंक्शन को आग लगने पर चयनित विकल्प के साथ अपने मानों की तुलना करें .. लेकिन मुझे लगता है कि एक बेहतर तरीका होना चाहिए।
तो ... क्या जावास्क्रिप्ट में मल्टीचॉइस सूची बॉक्स से सभी चयनित आइटम प्राप्त करने का कोई सीधा तरीका है?
देरी के लिए खेद है, मेरे पास आने वाली नई और जरूरी परियोजना के कारण कोई समय नहीं था ... अभी भी इस पर ... प्रतिक्रिया के लिए, ऐसा लगता है कि ऐसा लगता है कि आपका कोड वही है मेरे रूप में, तो 'विकल्प [i]। चयनित == सत्य' केवल अंतिम क्लिक किए गए विकल्प के साथ, मेरे कोड में एक बार आग लग जाएगा ... मेरे डेवलपर टूल कभी भी एक से अधिक 'चयनित = सत्य' सेट नहीं करते हैं। शायद मैंने सूची बॉक्स को गलत तरीके से घोषित कर दिया है? मुझे उम्मीद है कि सोमवार को आगे की समीक्षा करने के लिए कुछ समय बचा होगा और शायद सवाल फिर से खुल जाएगा। इस बीच मैं आपको कम से कम एक प्रयास नहीं कर सकता, धन्यवाद, धन्यवाद !!! –
असल में मुझे लगता है कि यह आपको वही पुरस्कृत होगा या नहीं, जैसा कि मैंने पढ़ा है, इसलिए आपके लिए बकाया है, आपने इसे अर्जित किया है। वैसे भी मेरा कामकाज एक जावास्क्रिप्ट सरणी बनायेगा, और प्रत्येक बार listbox.selected आग, उस इंडेक्स 'राज्य को टॉगल करें (सही <---> झूठा) ... मुझे लगता है कि समाचार के साथ वापस आ जाएगा;) –