2017-10-20 55 views
0

我想禁用其他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'禁用複選框僅當第一個複選框被點擊時纔有值? –

回答

1
$("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
  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

相關問題