jQuery - 检查复选框,并禁用其他如果有不同的值

问题描述:

我想禁用其他checkbox如果选中的checkbox与其他值不同。我见过一个问题,但答案与此相反。任何答案,非常感谢。jQuery - 检查复选框,并禁用其他如果有不同的值

<input type='checkbox' name='check[]' value='Active'> //first checkbox 
<input type='checkbox' name='check[]' value='Inactive'> 
<input type='checkbox' name='check[]' value='Inactive'> 
<input type='checkbox' name='check[]' value='Active'> 

让的说first checkbox与的Active值检查。其他值为Inactive的复选框应禁用on change

下面是我从开发者的一个发现这里

小提琴的例子:https://jsfiddle.net/Lenauevf/1/

When Checkbox checked make other same value checkboxes disabled

+2

添加所有相关的代码,以OP不是一个外部链接 – guradio

+0

所以,你想用'Inactive'禁用复选框仅当第一个复选框被点击时才有值? –

$("input[name='check[]']").on('click', function() { 
     var val = $(this).val(); 
     var parent = $(this); 
     $("input[value !='"+val+"']").each(function() { 
      $(this).not(parent).attr('disabled', parent.is(':checked')); 
     }); 
    }) 
+0

不错的工作,如果我使用'数据属性',我该如何做到这一点?而不是'价值'谢谢! – Dre

+0

您可以使用$ .data(attr)获取每个输入标签的属性值,与您的属性“名称”相同的方式做同样的工作 –

  1. 获取有关更改事件的变化选择框的当前值。
  2. 取消选中所有复选框。
  3. 使用电流值来检查所有复选框以相同的值

$(":checkbox").change(function() { 
 
    let val = $(this).val(); 
 
    console.log(val) 
 
    $(":checkbox").prop("checked", false) 
 
    $(":checkbox[value=" + val + "]").prop("checked", true) 
 
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type='checkbox' name='check[]' value='Active'> 
 
<input type='checkbox' name='check[]' value='Inactive'> 
 
<input type='checkbox' name='check[]' value='Inactive'> 
 
<input type='checkbox' name='check[]' value='Active'>

+0

不错的工作,我怎么能也做到这一点,如果我使用'数据属性?而不是'价值'谢谢! – Dre

+0

只需将属性'$(“:checkbox [data-value =”+ val +“]”)更改为''@dre – guradio