2016-12-09 18 views
0

チェックボックスをオンにすると、同じ値のチェックボックスを無効にする方法。チェックボックスをオンにすると、同じ値のチェックボックスが無効になります。

<input type='checkbox' name='check[]' value = '1'> 
<input type='checkbox' name='check[]' value = '2'> 
<input type='checkbox' name='check[]' value = '1'> 
<input type='checkbox' name='check[]' value = '2'> 
+0

あなたは試したことがありますか?もしそうなら、何を試しましたか?これはコード作成サービスではありませんが、困った場合には喜んで手伝ってください。 –

+1

ようこそスタックオーバーフロー!あなたの質問ははるかに広すぎます。[*](/ help/how-to-ask)問題を解決するための研究や試みが不足しているように見えます。 [the jQuery API](http://api.jquery.com)を読んで、チュートリアルを見て、やってみてください。 **特定の**問題に遭遇した場合は、あなたが試したことを示す質問を投稿し、どこに止まっているのかを伝えてください。 –

+0

ちょうど質問なぜ2つの同じ値のチェックボックスがありますか? 2つのチェックボックスが同じですか? – guradio

答えて

3

あなたが唯一の他の同じ値のチェックボックスではなくチェックされているチェックボックスを無効にしたい場合はそのような何か作業をする必要があります:

$("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')); 
    }); 
}) 

Demo

7

change()イベントハンドラを使用し、チェックされたプロパティに基づいて他の要素を無効にします。 filter()メソッドとattribute equals selectorメソッドを使用して同じ値を持つ他の要素を取得できる場所。

// cache the elements 
 
var $chk = $("[name='check[]']"); 
 
// bind change event handler 
 
$chk.change(function() { 
 
    $chk 
 
    // remove current element 
 
    .not(this) 
 
    // filter out element with same value 
 
    .filter('[value="' + this.value + '"]') 
 
    // update disabled property based on the checked property 
 
    .prop('disabled', this.checked); 
 
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type='checkbox' name='check[]' value='1'> 
 
<input type='checkbox' name='check[]' value='2'> 
 
<input type='checkbox' name='check[]' value='1'> 
 
<input type='checkbox' name='check[]' value='2'>

+1

それは私のために完璧に働いてくれてありがとう.. – Dev

+0

こんにちは、私はこれを逆の方法でやりますか?チェックボックスの値が同じでない場合、チェックボックスを無効にしますか?ありがとうございました – Dre

+0

@Dre: '.filter( ':not([value ="' + this.value + '"])')'または '.not( '[value ="' + this.value + '"] ')'の代わりに.filter( '[value = "' + this.value + '"]') ' –

0

あなたのhtml:

<input type='checkbox' class="chk" id="chk_id" name='check[]' value = '1'> 
    <input type='checkbox' class="chk" id="chk_id" name='check[]' value = '2'> 
    <input type='checkbox' class="chk" id="chk_id" name='check[]' value = '1'> 
    <input type='checkbox' class="chk" id="chk_id" name='check[]' value = '2'> 

スクリプトは:

$(document).ready(function(){ 
     $("#chk_id").click(function(){ 
     var current_value = $(this).val(); 
       $("input[type='checkbox']").each(function() { 
       if($(this).val() == current_value){ 
        $(this).attr("disabled", true); 
       } 
      }); 

     }); 
    }); 
関連する問題