Không có chức năng jQuery tích hợp cho điều đó. Bạn phải làm điều đó cho chính bản thân mình. Bạn có thể làm điều đó một cách dễ dàng đủ với một vòng lặp đơn giản:
var vals = []
$('input:checkbox[name="check[]"]').each(function() {
vals.push(this.value);
});
Hoặc nếu bạn chỉ muốn những người kiểm tra:
var vals = []
$('input:checkbox[name="check[]"]').each(function() {
if (this.checked) {
vals.push(this.value);
}
});
Hoặc bạn có thể sử dụng map
và get
:
var vals = $('input:checkbox[name="check[]"]').map(function() {
return this.value;
}).get();
Hoặc nếu bạn chỉ muốn những người được chọn:
var vals = $('input:checkbox[name="check[]"]').map(function() {
return this.checked ? this.value : undefined;
}).get();
Side lưu ý 1: jQuery đòi hỏi giá trị trong một selector giá trị thuộc tính (các loại trên) luôn được trong dấu ngoặc kép, mặc dù thời điểm viết bài này mặc dù ghi lại rằng nó vẫn còn lỏng lẻo về nó. Đó là một điều jQuery, nhưng trong trường hợp này bạn cũng cần nó cho CSS (CSS2 Reference | CSS3 Reference) vì giá trị của bạn bao gồm []
, không hợp lệ cho các giá trị không có dấu ngoặc kép trong CSS. (Trong CSS, mà không có dấu ngoặc kép các giá trị phải được identifiers.)
Side lưu ý 2: Lưu ý tôi đã sử dụng this.value
trong các chức năng lặp ở trên để nhận được giá trị của input
, chứ không phải là $(this).val()
. Nó là khá nhiều chỉ là một điều phong cách, không phải là tốt hơn so với khác từ tất cả các quan điểm. this.value
là trực tiếp hơn và nếu bạn biết DOM ở tất cả (và mọi lập trình viên web nên), nó hoàn toàn rõ ràng. Nhưng tất nhiên, trong khi trình duyệt chéo hoàn hảo đáng tin cậy với các hộp kiểm và hầu hết các phần tử input
khác, nó không phải là trình duyệt chéo đáng tin cậy với một số trường biểu mẫu khác (ví dụ: select
hộp). $(this).val()
là thành ngữ hơn trong ứng dụng chuyên sâu jQuery và bạn không phải lo lắng về việc liệu this
có phải là input
hoặc select
. Có, nó cho biết thêm chi phí, nhưng nếu bạn không có hàng ngàn người trong số họ, nó không giống như nó sẽ là vấn đề.
Nguồn
2011-12-06 21:36:34
Quấn selectors thuộc tính của bạn trong dấu ngoặc kép. '$ ('input: checkbox [name =" check [] "]'). val();' –
Cảm ơn các bạn - Tôi đã học được rất nhiều ở đây. Tôi không thích điều 'tick tick', nhưng đã cho nó TJC, bởi vì anh ấy đã ở trong một phút trước đó ... :) Tôi thực sự thích điều jsFiddle. – EML