Jquery复选框选中/取消选中问题

时间:2016-12-09 11:03:54

标签: jquery html checkbox

这是我无法弄清楚的。

<input type="checkbox" id="ckbox1" onclick="getFunc(1)" />

<input type="checkbox" id="ckbox2" onclick="getFunc(2)" />

JS

getFunc(val){
        if($("#ckbox"+val).attr('checked',true)){
        lock_arr.push({"name":val});
        }
        else{
        lock_arr.pop({"name":val});
  }
}

我想要的是lock_arr如果选中所有对象,则应该填充一个对象数组。如果未选中复选框,则数组将弹出取消选中的值并仅使用选中的值占用。

任何帮助将不胜感激

3 个答案:

答案 0 :(得分:0)

尝试:

<input type="checkbox" id="ckbox1" class="checkit" value = "1"/>

<input type="checkbox" id="ckbox2" class="checkit" value="2"/>

$(document).on("click",".checkit",function(){
    if($(this).prop("checked") == true) {
        lock_arr.push({"name":$(this).attr("value")});
    } else {
        lock_arr.pop({"name":$(this).attr("value")});
   }
});

答案 1 :(得分:0)

这应该这样做。此外,您不能通过声明其值来弹出数组中的某些内容。

&#13;
&#13;
var arr = [];
$("input[type='checkbox']").on('click', function(e) {
  var inp = $(this);
  if (inp.is(":checked")) {
    arr.push({
      "name": inp.attr('value')
    });
  } else {
    arr.forEach(function(result, index) {
      if (result.name == inp.attr("value")) {
        arr.splice(index, 1);
      }
    });
  }
  console.log(arr);
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="checkbox" id="ckbox1" value=1 />
<input type="checkbox" id="ckbox2" value=2 />
<input type="checkbox" id="ckbox3" value=3 />
&#13;
&#13;
&#13;

答案 2 :(得分:0)

你可以试试这个

function  getFunc(val){

    if ($("#ckbox" + val).prop("checked")) {
    lock_arr.push({"name":val});
    }
    else{
    lock_arr.pop({"name":val});

}