jQuery如何查找是否有选中的复选框,然后将其放入if语句中

时间:2018-06-28 05:31:31

标签: jquery

我是Jquery的新手,我在下面有以下代码,它将检查是否选中了任何复选框。我想做的就是得到那个的结果,然后(选中/未选中)将其放在if语句中(得到一个真或假或选中/未选中的变量,然后将其放入变量,以便可以使用if声明

$("#treeview .k-item input[type=checkbox]:checked").closest(".k-item");

例如,我想做下面的事情

var isChecked = $("#treeview .k-item input[type=checkbox]:checked").closest(".k-item");

if (isChecked == true)
   {
     // I know it's true do something
    } else {
         // It's false do something else
         }

3 个答案:

答案 0 :(得分:0)

这是一个示例示例。

我希望您的HTML如下

<div id="treeview">
    <div class="k-item">
        <input type="checkbox" /> <label>ZZZ</label>
        <input type="checkbox" /> <label>VVV</label>
        <input type="checkbox" /> <label>CCC</label>
        <input type="checkbox" /> <label>XXX</label>
        <input type="checkbox" /> <label>DDD</label>
    </div>
    <input type="button" id="btnSubmit" value="Check" />
</div>

下面是您可以使用的脚本。

$("#btnSubmit").on("click", function(){
    var isChecked = $("#treeview .k-item input[type=checkbox]").is(":checked");
    if(isChecked){
        alert("checked");
    }
    else{
        alert("none checked");
    }
});

这里是demo

答案 1 :(得分:0)

要检查是否已选中复选框,可以执行

\Z

\z

答案 2 :(得分:0)

此演示将:

  • 收集所有带有jQuery选择器扩展名 :checkbox 的复选框。

  • 记录每个复选框的ID,如果复选框已选中,则将记录该值并将其存储在 Map Object 中。

  • 所有未选中的复选框值都记录为Map对象中的null。

  • 在发生更改事件时,每个复选框都会包装在一个标签中。

  • 每个复选框标签将在左侧显示复选框的ID,在右侧显示值。这是通过CSS函数 attr()

  • 完成的

演示

在演示中评论的详细信息

/* Register all checkboxes to the change event
|| Invoke the checkCheckbox() callback function
|| and pass its return value through to displayMap() function
*/
$(':checkbox').on('change', function() {

  // Create an ES6 Map
  var map = new Map();
  var m = checkCheckbox(map);
  displayMap(m);
});

// Pass the Map through
function checkCheckbox(map) {

  // On each checkbox...
  $(':checkbox').each(function(idx) {

    //...store the total number of checkboxes...
    var qty = $(':checkbox').length;

    //...store the last index number created...
    var num = idx + qty;

    // if this checkbox doesn't have an id...
    if (!$(this).attr('id')) {

      //...then assign an id to it and...
      $(this).attr('id', `chx${num}`);

      //...create a string of a label...
      var str = $(`<label for="${this.id}"><b data-val="${this.value}"></b></label>`);

      /*...insert label string after checkbox then 
      || insert the checkbox as the first child of label
      */
      $(this).after(str);
      str.prepend($(this));
    }
    // if this checkbox is checked...
    if ($(this).is(':checked')) {

      //...get its value...
      var val = $(this).val();

      //...set its value within the Map...
      map.set(this.id, val);

      // ...otherwise...
    } else {

      //...set its value to Map as null
      map.set(this.id, null);
    }
  });
  return map;
}


// Utility function that displays a Map to console
function displayMap(map) {
  for (let [key, value] of map) {
    console.log(key + '=' + value);
  }
}
label {
  border: 3px outset grey;
  border-radius: 5px;
  white-space: nowrap;
  padding: 0 5px 0 0;
  display: inline-block;
  width: 25%;
}

label::before {
  content: '\a0'attr(for)
}

b::after {
  content: 'null';
}

input[type=checkbox]:checked+b::after {
  content: attr(data-val)
}

.as-console-wrapper {
  max-height: 70px !important;
}
<input type='checkbox' value='1'>
<input type='checkbox' value='true'>
<input type='checkbox' value='on'>
<input type='checkbox' value='z0' checked>
<input type='checkbox' value='1' checked>
<input type='checkbox' value='89m' checked>
<input type='checkbox' value='1'>
<input type='checkbox' value='cajun' checked>
<input type='checkbox' value='00'>
<input type='checkbox' value='v' checked>
<input type='checkbox' value='1'>
<input type='checkbox' value='A' checked>






<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>