获取多个复选框(Javascript)的值,然后根据选择

时间:2017-11-16 23:51:22

标签: javascript html arrays sorting

所以我在这里遇到了一些棘手的情况。

我有一系列表单,其中包含存储为数组的选项。我正在检查索引中的正确答案的选择,因此索引和元素数量非常重要。

我的问题出现了为什么尝试连接这两个数组,这些数组保存了html复选框的已检查和未检查的值。

即:let comb = checked.concat(unchecked)

let checked = $('input:checkbox:checked').map(function() {
return this.value;}).get();

let unchecked = $('input:checkbox:not(:checked)').map(function() {
return "100"; }).get();

该代码的问题在于它会影响选择的顺序,这会破坏在特定索引处检查的代码与正确的答案。

我需要的是获取所有复选框值,并仅在选中时指定html值,否则插入一些任意值(如您所见,返回“100”)

这样的事情(非语法正确或可运行):

let checked = $('input:checkbox').map(function() {
if ('input:checkbox:checked'){ .  //if checked
return this.value;}).get();}else if ('input:checkbox:not(:checked)'){ //if unchecked
return "100"; }).get();
}

1 个答案:

答案 0 :(得分:1)

你需要map()回调中的整个条件

let checked = $('input:checkbox').map(function() {
  // if checked return the value , if not return "100"
  return this.checked ? this.value : '100';
}).get();

或者在你试图做的时候使用is()进行长时间的

let checked = $('input:checkbox').map(function() {      
  if($(this).is(':checked')){
     return this.value;
  }else{
     return '100';
  } 
}).get();