2012-09-10 17 views

उत्तर

5
$('input[type="checkbox"]').filter(function() { 
return !this.disabled && this.checked; 
}) 
+1

में .filter() फ़ंक्शन का उपयोग करना है, लेकिन चयनकर्ता से 'चेक किया गया' खोना और फ़िल्टर फ़ंक्शन बनाना! This.disabled && this.checked' प्रदर्शन को बेहतर करेगा । – lonesomeday

+0

बिल्कुल क्यों? मुझे लगता है कि चयनकर्ता इंजन मेरे कार्य से तेज़ी से ऐसा करेगा। फिर भी समझना आसान है, मैं अपना जवाब संपादित कर दूंगा। – Hoffmann

+0

क्योंकि ब्राउजर 'चेक नहीं' समझते हैं, इसलिए jQuery को इसे स्वयं करना है, जो धीमा है। एक अतिरिक्त बुलियन जांच जोड़ना बहुत तेज़ है। – lonesomeday

7
$('input[type="checkbox"]:checked').not(":disabled"); 

यहाँ एक fiddle

+0

आपको मेरी प्रतिक्रिया – Hoffmann

25

इसलिए की तरह है:

$("input[type='checkbox']:checked").not(":disabled")... 

इस फ़ील्ड input रों हैं पाता है, प्रकार checkbox, जो जाँच कर रहे हैं, और अक्षम नहीं के साथ। अगर यह काम नहीं करता है, आप एक विशेषता की जांच का उपयोग करना चाहिए:

$("input[type='checkbox']:checked").not("[disabled]")... 

या, जैसा कि @lonesomeday astutely कहा, आप इसे एक चयनकर्ता में गठजोड़ कर सकते हैं:

$("input[type='checkbox']:checked:not(:disabled)")... 

मैं एक साथ एक डाल दिया है सबूत-ऑफ-अवधारणा in this fiddle

+5

यहां दो अलग-अलग चयनकर्ताओं का उपयोग करने में कोई बात नहीं है। आप इनपुट [टाइप = "चेकबॉक्स"] भी कर सकते हैं: चेक किया गया: नहीं ([अक्षम]) '। – lonesomeday

2

आप इस का भी उपयोग कर सकते हैं ..

​$('input[type=checkbox]:checked:not(:disabled)')​ 

चेक इस FIDDLE

0

कैसे करें के बारे $("input[type='checkbox']:checked:enabled")?

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