jQuery复选框值以逗号分隔的列表

24c*_*ive 11 arrays checkbox jquery list comma

我有几个带有名称数组的复选框,我希望复选框的输出是一个带逗号分隔列表的变量.

<input type="checkbox" name="example[]" value="288" />
<input type="checkbox" name="example[]" value="289" />
<input type="checkbox" name="example[]" value="290" />
Run Code Online (Sandbox Code Playgroud)

例如,如果选择了第一个和最后一个框,则输出将为:

var output = "288,290";
Run Code Online (Sandbox Code Playgroud)

我怎么能用jQuery做到这一点?

Sel*_*gam 24

您可以使用:checkbox和命名属性selector(:checkbox[name=example\\[\\]])来获取复选框列表,name="example[]"然后您可以使用:checked过滤器来仅获取所选复选框.

然后,您可以使用.map函数从所选复选框中创建一个数组.

DEMO

var output = $.map($(':checkbox[name=example\\[\\]]:checked'), function(n, i){
      return n.value;
}).join(',');
Run Code Online (Sandbox Code Playgroud)


Dav*_*mas 6

目前未经测试,但我认为以下应该有效:

var valuesArray = $('input:checkbox:checked').map( function () {
    return $(this).val();
}).get().join();
Run Code Online (Sandbox Code Playgroud)

经过一段小小的休息后编辑,使用原生DOM,而不是$(this).val()(在上下文中这是不必要的昂贵):

var valuesArray = $('input:checkbox:checked').map( function() {
    return this.value;
}).get().join(",");
Run Code Online (Sandbox Code Playgroud)