2017-07-18 6 views
0

"check all"ボックスはそれぞれのカテゴリにのみ適用されます。下の例を使用して、Toyotaのチェックボックスをすべてオンにすると、Fordのチェックボックスもチェックされます。私はToyota Check all boxをトヨタ車にのみ適用したいと思います。このコードは別の項目としてスクリプトを書き込むときに機能しますが、別のJSファイルを作成すると機能しなくなりました。私はいくつかのカテゴリを持っています。私はこのコードを使用していますので、それを一度書き留める方法があれば、それはそれぞれのカテゴリに対しても同様に評価されます。"Check All"ボックスは現在ページのすべてをチェックしています

<button class="accordion">Toyota</a></button> 
<div class="panel"> 
<form action="CarPHPTest.php" method="post"> 
<input type="submit" name="submit" value="Submit"> 
<br/> 
<p><input type="checkbox" name="check_uncheck" id="check_uncheck" /> Check   All/Uncheck All 

<br/> 
<div class="checkboxes"> 
<input type="checkbox" name="check_list[]" value=Camry id="check" /> Camry  <br/> 
<input type="checkbox" name="check_list[]" value=Corolla id="check" /> Corolla <br/> 
</div> </p> </form> 
</div> 

<button class="accordion">Ford</a></button> 
<div class="panel"> 
<form action="CarPHPTest.php" method="post"> 
<input type="submit" name="submit" value="Submit"> 
<br/> 
<p><input type="checkbox" name="check_uncheck2" id="check_uncheck2" /> Check All/Uncheck All 

<br/> 
<div class="checkboxes"> 
<input type="checkbox" name="check_list[]" value=Fusion id="check" /> Fusion <br/> 
    <input type="checkbox" name="check_list[]" value=Focus id="check" /> Focus <br/> 
</div> </p> </form> 
</div> 

JS File 
// JavaScript Document 
// The following script is for the check all/uncheckall feature 

jQuery(document).ready(function() { 
    "use strict"; 
$("#check_uncheck").change(function() { 
    if ($("#check_uncheck:checked").length) { 
     $(".checkboxes input:checkbox").prop("checked", true); 
    } else { 
     $(".checkboxes input:checkbox").prop("checked", false); 
    } 
}); 
}); 

jQuery(document).ready(function() { 
"use strict"; 
$("#check_uncheck2").change(function() { 
    if ($("#check_uncheck2:checked").length) { 
     $(".checkboxes input:checkbox").prop("checked", true); 
    } else { 
     $(".checkboxes input:checkbox").prop("checked", false); 
    } 
}); 
}); 
+0

- それが現在立っているとして、あなたは両方の無効なタグ(あなたのボタンの内側に開いているなしでアンカー終了タグを持っている)と、非ユニークなIDを持っていますあなたのチェックボックス要素のために。 – Reddog

答えて

0
  1. 使用このコンテキストを
  2. のみ関連するチェックボックスを選択するセレクタでIDが一意
なければならない修正IDを最も近い(「パネル」)を使用して現在の変更チェックボックス
  • をチェックします

    $("#check_uncheck").change(function() { 
     
        if ($(this).is(":checked")) { 
     
        $(this).closest(".panel").find(".checkboxes input:checkbox").prop("checked", true); 
     
        } else { 
     
        $(this).closest(".panel").find(".checkboxes input:checkbox").prop("checked", false); 
     
        } 
     
    }); 
     
    
     
    "use strict"; 
     
    $("#check_uncheck2").change(function() { 
     
        if ($(this).is(":checked")) { 
     
        $(this).closest(".panel").find(".checkboxes input:checkbox").prop("checked", true); 
     
        } else { 
     
        $(this).closest(".panel").find(".checkboxes input:checkbox").prop("checked", false); 
     
        } 
     
    });
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
     
    <button class="accordion">Toyota</button> 
     
    <div class="panel"> 
     
        <form action="CarPHPTest.php" method="post"> 
     
        <input type="submit" name="submit" value="Submit"> 
     
        <br/> 
     
        <p><input type="checkbox" name="check_uncheck" id="check_uncheck" /> Check All/Uncheck All 
     
    
     
         <br/> 
     
         <div class="checkboxes"> 
     
         <input type="checkbox" name="check_list[]" value=Camry id="check" /> Camry <br/> 
     
         <input type="checkbox" name="check_list[]" value=Corolla id="check" /> Corolla <br/> 
     
         </div> 
     
        </form> 
     
    </div> 
     
    
     
    <button class="accordion">Ford</button> 
     
    <div class="panel"> 
     
        <form action="CarPHPTest.php" method="post"> 
     
        <input type="submit" name="submit" value="Submit"> 
     
        <br/> 
     
        <p><input type="checkbox" name="check_uncheck2" id="check_uncheck2" /> Check All/Uncheck All 
     
    
     
         <br/> 
     
         <div class="checkboxes"> 
     
         <input type="checkbox" name="check_list[]" value=Fusion id="check" /> Fusion <br/> 
     
         <input type="checkbox" name="check_list[]" value=Focus id="check" /> Focus <br/> 
     
         </div> 
     
        
     
        </form> 
     
    </div>

    短いバージョン:FYI

    $("#check_uncheck").change(function() { 
     
        $(this).closest(".panel").find(".checkboxes input:checkbox").prop("checked", $(this).is(":checked")); 
     
    }); 
     
    
     
    "use strict"; 
     
    $("#check_uncheck2").change(function() { 
     
        $(this).closest(".panel").find(".checkboxes input:checkbox").prop("checked", $(this).is(":checked")); 
     
    });
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
     
    <button class="accordion">Toyota</button> 
     
    <div class="panel"> 
     
        <form action="CarPHPTest.php" method="post"> 
     
        <input type="submit" name="submit" value="Submit"> 
     
        <br/> 
     
        <p><input type="checkbox" name="check_uncheck" id="check_uncheck" /> Check All/Uncheck All 
     
    
     
         <br/> 
     
         <div class="checkboxes"> 
     
         <input type="checkbox" name="check_list[]" value=Camry id="check" /> Camry <br/> 
     
         <input type="checkbox" name="check_list[]" value=Corolla id="check" /> Corolla <br/> 
     
         </div> 
     
        </form> 
     
    </div> 
     
    
     
    <button class="accordion">Ford</button> 
     
    <div class="panel"> 
     
        <form action="CarPHPTest.php" method="post"> 
     
        <input type="submit" name="submit" value="Submit"> 
     
        <br/> 
     
        <p><input type="checkbox" name="check_uncheck2" id="check_uncheck2" /> Check All/Uncheck All 
     
    
     
         <br/> 
     
         <div class="checkboxes"> 
     
         <input type="checkbox" name="check_list[]" value=Fusion id="check" /> Fusion <br/> 
     
         <input type="checkbox" name="check_list[]" value=Focus id="check" /> Focus <br/> 
     
         </div> 
     
    
     
        </form> 
     
    </div>

  • +1

    "Check All"入力は一意のIDを必要とせず、共通のクラスを共有することができ、単一のイベントハンドラをバインドできます。もしあなたが熱心であれば、if/else構造体を '$(this).closest("。panel ")に置き換えることができますfind(" input:checkbox ")。prop(" checked "、this.checked);' – nnnnnn

    +0

    @nnnnnnはそのデモを追加します – guradio

    +0

    残念ながら、私はまだ同じ問題が発生しています。すべてのチェック/すべてのチェックを外す機能は、あなたが提案したスクリプトで動作していますが、ページ上のすべてのチェックを行います。 – dfs6353

    関連する問題