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函数从所选复选框中创建一个数组.
var output = $.map($(':checkbox[name=example\\[\\]]:checked'), function(n, i){
return n.value;
}).join(',');
Run Code Online (Sandbox Code Playgroud)
目前未经测试,但我认为以下应该有效:
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)