2012-07-02 12 views
55

मैं चेकबॉक्स समूह 'locationthemes' के माध्यम से लूप करना चाहता हूं और सभी चयनित मानों के साथ एक स्ट्रिंग बनाना चाहता हूं। तो जब चेकबॉक्स 2 और 4 का चयन किया जाता परिणाम होगा: "3,8"चयनित चेकबॉक्स के मान प्राप्त करने के लिए jQuery का उपयोग करें

<input type="checkbox" name="locationthemes" id="checkbox-1" value="2" class="custom" /> 
<label for="checkbox-1">Castle</label> 
<input type="checkbox" name="locationthemes" id="checkbox-2" value="3" class="custom" /> 
<label for="checkbox-2">Barn</label> 
<input type="checkbox" name="locationthemes" id="checkbox-3" value="5" class="custom" /> 
<label for="checkbox-3">Restaurant</label> 
<input type="checkbox" name="locationthemes" id="checkbox-4" value="8" class="custom" /> 
<label for="checkbox-4">Bar</label> 

मैं यहाँ जाँच: http://api.jquery.com/checked-selector/ लेकिन कोई उदाहरण को उसके नाम से checkboxgroup चयन करने के लिए कैसे।

मैं यह कैसे कर सकता हूं?

उत्तर

125

jQuery में सिर्फ नाम "locationthemes" के साथ सभी की जाँच आदानों का चयन करने की तरह

$('input[name="locationthemes"]:checked'); 

एक विशेषता का भी उपयोग कर

console.log($('input[name="locationthemes"]:checked').serialize()); 

//or 

$('input[name="locationthemes"]:checked').each(function() { 
    console.log(this.value); 
}); 

Demo


में VanillaJS

[].forEach.call(document.querySelectorAll('input[name="locationthemes"]:checked'), function(cb) { 
    console.log(cb.value); 
}); 

Demo

+4

आप, मेरे दोस्त, एक जीवन बचतकर्ता हैं। – Haring10

+0

विशेष रूप से मुझे कंसोल-लॉग का उपयोग करके विचार पसंद है। उसके लिए धन्यवाद। –

24
$('input:checkbox[name=locationthemes]:checked').each(function() 
{ 
    // add $(this).val() to your array 
}); 

कार्य Demo

या

उपयोग jQuery के is() समारोह:

$('input:checkbox[name=locationthemes]').each(function() 
{  
    if($(this).is(':checked')) 
     alert($(this).val()); 
}); 

4
You can also use the below code 
$("input:checkbox:checked").map(function() 
{ 
return $(this).val(); 
}).get(); 
+1

इस परिणाम को परिवर्तनीय –

10

jQuery के map समारोह

var checkboxValues = []; 
$('input[name=checkboxName]:checked').map(function() { 
      checkboxValues.push($(this).val()); 
}); 
+0

में यह समझने के साथ कि इस उदाहरण में चेकबॉक्स नाम "locationthemes" होना चाहिए – hrabinowitz

1

का प्रयोग तो सभी एक पंक्ति में:

var checkedItemsAsString = $('[id*="checkbox"]:checked').map(function() { return $(this).val().toString(); }).get().join(","); 

चयनकर्ता [id*="checkbox"] के बारे में ध्यान दें ..a, यह किसी भी वस्तु को पकड़ो इसमें स्ट्रिंग "चेकबॉक्स" के साथ। यहां थोड़ा बेवकूफ़ है, लेकिन वास्तव में अच्छा है यदि आप चयनित मूल्यों को किसी .NET CheckBoxList की तरह खींचने का प्रयास कर रहे हैं। उस स्थिति में "चेकबॉक्स" वह नाम होगा जिसे आपने चेकबॉक्स लिस्ट नियंत्रण दिया था।

6

मानचित्र सरणी सबसे तेज़ और साफ है।

var array = $.map($('input[name="locationthemes"]:checked'), function(c){return c.value; }) 

की तरह एक सरणी के रूप में मान वापस आ जाएगी:

array => [2,3] 

संभालने महल और खलिहान की जाँच कर रहे थे और दूसरों के नहीं थे।

6

$("#locationthemes").prop("checked")

+0

यह एक टिप्पणी होनी चाहिए –

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