简体   繁体   English

使用jQuery获取复选框列表的检查值

[英]Get checked values of checkbox list using jquery

I have a couple of checkbox with the name etapes . 我有几个名为etapes的复选框。 I'd like to get all the checked etapes 's value and store it in a single string. 我想获取所有检查过的etapes的值,并将其存储在单个字符串中。

So tried this : 所以尝试了这个:

$('[name="etapes"]:checked').each(function() {
    indexer = indexer + 1;
    if (indexer == 1) selectedEtapes = $(this).val();
    else selectedEtapes = selectedEtapes + "," + $(this).val();
});

but it didn't work. 但这没用。 SO how can I fix this issue? 那我该如何解决这个问题呢?

Easier solution is to use jQuery.map 最简单的解决方案是使用jQuery.map

 var mapped = $('[name="etapes"]:checked').map(function() { return this.value; }).get(); console.log(mapped.join(',')); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> <input type="checkbox" name="etapes" value="Ouverte1" checked> <input type="checkbox" name="etapes" value="Ouverte2"> <input type="checkbox" name="etapes" value="Ouverte3" checked> 

Fix for your code: 修复您的代码:

You never accepted index argument, 您从未接受过index参数,

var selectedEtapes = '';
$('[name="etapes"]:checked').each(function(index) {
  if (!index) selectedEtapes += $(this).val();
  else selectedEtapes += "," + $(this).val();
});

You can do it using map() method like following. 您可以使用map()方法执行此操作,如下所示。

 var str = $('[name="etapes"]:checked').map(function() { return $(this).val(); }).get().join(); console.log(str) 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <input type="checkbox" name="etapes" value="Ouverte1" checked="checked"> <input type="checkbox" name="etapes" value="Ouverte2"> <input type="checkbox" name="etapes" value="Ouverte3" checked="checked"> <input type="checkbox" name="etapes" value="Ouverte4" checked="checked"> 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM