2009-03-14 34 views
129

द्वारा चुने गए विकल्प में पहले से मौजूद है या नहीं, मैं यह कैसे जांच सकता हूं कि JQuery द्वारा चुने गए विकल्प में कोई विकल्प मौजूद है या नहीं?मैं कैसे जांच सकता हूं कि JQuery

मैं गतिशील रूप से विकल्पों को चुनने के लिए जोड़ना चाहता हूं और इसलिए मुझे यह जांचने की आवश्यकता है कि विकल्प डुप्लिकेशंस को रोकने के लिए पहले से मौजूद है या नहीं।

उत्तर

259

यह सही का आकलन करता है, तो वह पहले से मौजूद:

$("#yourSelect option[value='yourValue']").length > 0; 
+5

उन्नयन, उद्धरण – Bob

+1

हां में yourValue लगा। उद्धरण बहुत महत्वपूर्ण हैं। – bobetko

+2

jquery 1.7.1 में मेरे लिए काम करता है बिना उद्धरण में अपना वैल्यू –

18
if ($("#your_select_id option[value=<enter_value_here>]").length == 0){ 
    alert("option doesn't exist!"); 
} 
+2

आप एक बंद ब्रैकेट खो रहे हैं "विकल्प [value = ]" –

2

काम नहीं करता, तो आप इस करना है:

if ($("#your_select_id option[value='enter_value_here']").length == 0){ 
    alert("option doesn't exist!"); 
} 
15

एक और तरीका है jQuery का उपयोग कर:

var exists = false; 
$('#yourSelect option').each(function(){ 
    if (this.value == yourValue) { 
    exists = true; 
    } 
}); 
+6

-1 आप मूल रूप से jQuery को अन्य सभी उत्तरों की तरह करने के बजाए लूप कर रहे हैं। हालांकि यह काम करेगा, यह पहिया का पुन: आविष्कार कर रहा है। – Peter

+12

सुनिश्चित नहीं है कि यह -1 योग्य है। यह स्पष्ट रूप से प्रक्रिया को दिखाता है, जो शुरुआती लोगों के लिए अच्छा हो सकता है। निश्चित रूप से सबसे अच्छा जवाब नहीं है, लेकिन यह एक मान्य है। – roberthuttinger

+1

और कुछ मेरे जैसे मैन्युअल दृष्टिकोण की तरह। यह 0 या 1 को दूसरे की तरह बनाने और इसे बदलने के बजाय, वहां बुलियन जोड़ने का चरण भी जोड़ता है। मैं कहता हूं कि दोनों दृष्टिकोण ठीक हैं क्योंकि आपको 2 कदम, किसी भी तरह से करना है। यह प्रक्रिया के लिए और अधिक दिखाई देता है, मेरे लिए, और व्हाइटस्पेस की लंबाई का निर्धारण न करके त्रुटि से कम प्रवण होता है, उदाहरण के लिए, 'लम्बाई' की तरह हो सकता है। – vapcguy

12
var exists = $("#yourSelect option") 
       .filter(function (i, o) { return o.value === yourValue; }) 
       .length > 0; 

इसका आपके लिए मूल्य से बचने का लाभ है, जो टेक्स्ट में यादृच्छिक उद्धरण को सुलझाने के लिए बहुत आसान बनाता है।

0

यह मेरी मदद है: jQuery के 1.6 + के लिए

var key = 'Hallo'; 

    if ($("#chosen_b option[value='"+key+"']").length == 0){ 
    alert("option not exist!"); 

    $('#chosen_b').append("<option value='"+key+"'>"+key+"</option>"); 
    $('#chosen_b').val(key); 
    $('#chosen_b').trigger("chosen:updated"); 
         } 
    }); 
संबंधित मुद्दे

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