2012-07-02 40 views
55

Tôi muốn lặp qua các nhóm 'locationthemes' và xây dựng một chuỗi với tất cả các giá trị đã chọn. Vì vậy, khi hộp kiểm 2 và 4 được lựa chọn kết quả sẽ là: "3,8"sử dụng jQuery để lấy giá trị của các hộp kiểm đã chọn

<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> 

Tôi đã kiểm tra ở đây: http://api.jquery.com/checked-selector/ nhưng không có ví dụ làm thế nào để chọn một checkboxgroup theo tên của nó.

Làm thế nào tôi có thể làm điều này?

Trả lời

125

Trong jQuery chỉ cần sử dụng một bộ chọn thuộc tính như

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

để chọn tất cả các đầu vào kiểm tra với tên "locationthemes"

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

//or 

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

Demo


Trong VanillaJS

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

Demo

+4

Bạn, bạn của tôi, là người tiết kiệm cuộc sống. – Haring10

+0

Đặc biệt tôi thích ý tưởng này bằng cách sử dụng bảng điều khiển-nhật ký. Cảm ơn vì điều đó. –

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

Working Demo

HOẶC

is() chức năng

Sử dụng jQuery:

$('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

Cách gán kết quả này vào biến –

10

Sử dụng jquery của map chức năng

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

với sự hiểu biết rằng tên hộp kiểm phải là "locationthemes" trong ví dụ này – hrabinowitz

1

Vì vậy, tất cả trong một dòng:

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

..a lưu ý về bộ chọn [id*="checkbox"], nó sẽ lấy bất kỳ mục nào với chuỗi "hộp kiểm" trong đó. Một chút vụng về ở đây, nhưng thực sự tốt nếu bạn đang cố gắng kéo các giá trị được lựa chọn ra khỏi một cái gì đó giống như một. NET CheckBoxList. Trong trường hợp đó "hộp kiểm" sẽ là tên mà bạn đã cung cấp kiểm soát CheckBoxList.

6

Ánh xạ mảng nhanh nhất và sạch nhất.

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

sẽ trở lại giá trị như một mảng như:

array => [2,3] 

giả lâu đài và nhà kho đã được kiểm tra và những người khác thì không.

6

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

+0

Đây phải là nhận xét –

Các vấn đề liên quan