2012-08-14 35 views
37

Làm cách nào tôi có thể nhận được giá trị của các hộp kiểm được chọn bằng cách sử dụng jquery? mã html của tôi là như sau:cách nhận nhiều giá trị hộp kiểm bằng cách sử dụng jquery

<input id="ad_Checkbox1" class="ads_Checkbox" type="checkbox" value="1" /> 
<input id="ad_Checkbox2" class="ads_Checkbox" type="checkbox" value="2" /> 
<input id="ad_Checkbox3" class="ads_Checkbox" type="checkbox" value="3" /> 
<input id="ad_Checkbox4" class="ads_Checkbox" type="checkbox" value="4" /> 
<input type="button" id="save_value" name="save_value" value="Save" /> 

Trả lời

77

Hãy thử

<input name="selector[]" id="ad_Checkbox1" class="ads_Checkbox" type="checkbox" value="1" /> 
<input name="selector[]" id="ad_Checkbox2" class="ads_Checkbox" type="checkbox" value="2" /> 
<input name="selector[]" id="ad_Checkbox3" class="ads_Checkbox" type="checkbox" value="3" /> 
<input name="selector[]" id="ad_Checkbox4" class="ads_Checkbox" type="checkbox" value="4" /> 
<input type="button" id="save_value" name="save_value" value="Save" /> 

chức năng này

$(function(){ 
     $('#save_value').click(function(){ 
     var val = []; 
     $(':checkbox:checked').each(function(i){ 
      val[i] = $(this).val(); 
     }); 
     }); 
    }); 
17

Bạn có thể làm điều đó như thế này,

$('.ads_Checkbox:checked') 

Bạn có thể lặp qua chúng với each() và điền vào các mảng với giá trị checkedbox.

Live Demo

Để có được các giá trị của hộp kiểm chọn trong mảng

var i = 0; 
$('#save_value').click(function() { 
     var arr = []; 
     $('.ads_Checkbox:checked').each(function() { 
      arr[i++] = $(this).val(); 
     });  
}); 

Chỉnh sửa, sử dụng .map()

Bạn cũng có thể sử dụng jQuery.map với get() để nhận được mảng giá trị hộp kiểm đã chọn.

Lưu ý phụ bằng cách sử dụng this.value thay vì $(this).val() sẽ mang lại hiệu suất tốt hơn.

Live Demo

$('#save_value').click(function(){ 
    var arr = $('.ads_Checkbox:checked').map(function(){ 
     return this.value; 
    }).get(); 
}); 
1

bạn có thể nhận được chúng như thế này

$('#save_value').click(function(){ 
$('.ads_Checkbox:checked').each(function(){ 
    alert($(this).val()); 
         });}); 

jsfiddle

+1

bạn thực sự cần gửi mã cùng với câu trả lời của bạn. Nói jsfiddle đã đi xuống, hoặc đã chết ... câu trả lời này sẽ là vô giá trị. Nó cũng sẽ giúp mọi người tìm câu trả lời đang tìm kiếm thông qua google, v.v. – Jeemusu

+0

có hàng nghìn câu trả lời đang sử dụng jsfiddle trên SO và jsfiddle là cách tốt nhất để xem mọi thứ theo cách làm việc để cung cấp câu trả lời tốt hơn cho câu hỏi – rahul

+0

Sử dụng jsfiddle là tuyệt vời, hãy làm như vậy, nhưng vui lòng đăng câu trả lời trong Stackoverflow! Như tôi đã nói, nói jsfiddle biến mất khỏi internet, và ai đó với cùng một vấn đề tìm thấy bài đăng này ... sẽ không có câu trả lời chỉ là một liên kết chết. Nó cũng sẽ không được các công cụ tìm kiếm lập chỉ mục. – Jeemusu

1

Kể từ khi u có tên lớp cùng chống lại tất cả hộp kiểm tra, do đó

$(".ads_Checkbox") 

sẽ cung cấp cho u tất cả các hộp kiểm, và sau đó bạn có thể lặp lại chúng bằng nhau vòng lặp như

$(".ads_Checkbox:checked").each(function(){ 
    alert($(this).val()); 
}); 
2

Bạn có thể thử;

$('#save_value').click(function(){ 
    var final = ''; 
    $('.ads_Checkbox:checked').each(function(){   
     var values = $(this).val(); 
     final += values; 
    }); 
    alert(final); 
}); 

Điều này sẽ trả về tất cả các giá trị hộp kiểm trong một trường hợp.

Here là bản trình diễn trực tiếp đang hoạt động.

0

Hãy thử getPrameterValues() để nhận giá trị từ nhiều hộp kiểm.

50

Để có được một mảng các giá trị từ nhiều kiểm tra hộp kiểm tra, sử dụng bản đồ jQuery/có được chức năng:

$('input[type=checkbox]:checked').map(function(_, el) { 
    return $(el).val(); 
}).get(); 

này sẽ trở lại mảng với giá trị kiểm tra, như thế này: ví dụ ['1', '2']

đây đang làm việc trên jsfiddle: http://jsfiddle.net/7PV2e/

1

Bạn cũng có thể sử dụng $('input[name="selector[]"]').serialize();. Nó trả về chuỗi được mã hóa URL như sau: "selector% 5B% 5D = 1 & select% 5B% 5D = 3"

0

thử cái này .. (guys Tôi là một con ong mới .. vì vậy nếu tôi sai thì tôi thực sự xin lỗi. Nhưng tôi tìm thấy một giải pháp bằng cách này.)

var suggestion = []; 
     $('#health_condition_name:checked').each(function (j, ob) { 
      var odata = { 
       health_condition_name: $(ob).val() 
      }; 
      health.push(odata); 
     }); 
0
$('input:checked').map(function(i, e) {return e.value}).toArray(); 
Các vấn đề liên quan