Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/237.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery-将标签组和复选框限制为最大数量_Javascript_Php_Jquery_Html_Checkbox - Fatal编程技术网

Javascript jQuery-将标签组和复选框限制为最大数量

Javascript jQuery-将标签组和复选框限制为最大数量,javascript,php,jquery,html,checkbox,Javascript,Php,Jquery,Html,Checkbox,我试图限制复选框及其相对标签可选择的最大数量。复选框工作正常,但标签的可选性仍然超过限制 我的htmlinput格式如下: <div data-toggle="buttons" class="btn-group bizmoduleselect"> <label id="b-<?php echo $term->term_id; ?>" class="btn btn-default <?php echo $labelchk ?>"> &l

我试图限制
复选框
及其相对
标签
可选择的最大数量。复选框工作正常,但标签的可选性仍然超过限制

我的html
input
格式如下:

<div data-toggle="buttons" class="btn-group bizmoduleselect">
<label id="b-<?php echo $term->term_id; ?>" class="btn btn-default <?php echo $labelchk ?>">
    <div class="bizcontent">
        <input id="youaresure" type="checkbox" name="email_cats[]" <?php echo $chk ?> value="<?php echo $term->term_id ?>" />
        <h5><?php echo $term->name ?></h5>
    </div>
</label>
</div>


这不起作用,因为标签没有更改处理程序。也许您最好将一些代码添加到复选框的属性检查函数中,以便在必要时删除父标签的“活动”类。

这不起作用,因为标签没有更改处理程序。也许您最好将一些代码添加到复选框的属性检查函数中,以便在必要时删除父标签的“活动”类。

上没有
更改
事件。一切都应该在

我的建议是在达到限制时禁用其他复选框

下面将切换标签上的活动类以及禁用/启用未选中的输入

var max = 5;

var $checkboxes = $(':checkbox').change(function(e) {
  var maxChecked = $checkboxes.filter(':checked').length === max;
  // disable/enable others based on limit 
  $checkboxes.not(':checked').prop('disabled', maxChecked);
  // toggle label active based on checked state
  $(this).closest('label').toggleClass('active', this.checked);
});

上没有
更改
事件。一切都应该在

我的建议是在达到限制时禁用其他复选框

下面将切换标签上的活动类以及禁用/启用未选中的输入

var max = 5;

var $checkboxes = $(':checkbox').change(function(e) {
  var maxChecked = $checkboxes.filter(':checked').length === max;
  // disable/enable others based on limit 
  $checkboxes.not(':checked').prop('disabled', maxChecked);
  // toggle label active based on checked state
  $(this).closest('label').toggleClass('active', this.checked);
});

请将您的完整代码添加到jsfiddleLabels无更改事件。因此,您可以使用标签单击事件,也可以在复选框更改事件上执行所有操作。不能在页面中复制Id,它们在定义上是唯一的。我在Bootstrap3中使用了snippet。可能是因为这个原因,一旦达到限制,我就无法阻止单击复选框。他们被当作纽扣对待@MohammadAkbariplz将您的完整代码添加到jsfiddleLabels中。标签没有更改事件。因此,您可以使用标签单击事件,也可以在复选框更改事件上执行所有操作。不能在页面中复制Id,它们在定义上是唯一的。我在Bootstrap3中使用了snippet。可能是因为这个原因,一旦达到限制,我就无法阻止单击复选框。他们被当作纽扣对待@MohammadAkbariHello,谢谢你的回答,但我已经尝试了你的解决方案,它不会起作用。我检查了我的代码,实际上我忘记了它与引导数据toggle=“buttons”一起工作。我已经编辑了这个问题。可能就是为了这个!我实际上使用了这个代码段。我的意思是复选框被当作按钮对待!谢谢,我终于从你的答案开始找到了答案。祝你有美好的一天!您好,谢谢您的回答,但我已经尝试了您的解决方案,它不会工作。我检查了我的代码,实际上我忘记了它与引导数据toggle=“buttons”一起工作。我已经编辑了这个问题。可能就是为了这个!我实际上使用了这个代码段。我的意思是复选框被当作按钮对待!谢谢,我终于从你的答案开始找到了答案。祝你有美好的一天!