флажок «ничего из вышеперечисленного» в сетке автоматически снимает флажки с других флажков в столбце, jquery - PullRequest
1 голос
/ 23 июня 2011

у меня есть сетка с множеством строк и двух столбцов. последняя строка содержит флажки «ничего из вышеперечисленного». когда флажок установлен, я хочу, чтобы все остальные флажки в столбце стали непроверенными. когда один из других флажков в столбце будет установлен, я хочу, чтобы ни один из вышеприведенных флажков в этом столбце не был автоматически снят. вот что у меня есть ... проблема со второй частью этого ... я нуб

columnclear : function() {
    // NoneClear -Columngrid
    $(':checkbox[name*="ColumnClear"]').click(function() {
        if ( this.checked === true ) {
            var $table = $(this).closest("table");
            var col = $(this).closest("tr").children().index($(this).closest("td"));
            var index = col+1;
            $table.find("td:nth-child("+index+") input:checkbox") .attr("checked",false);
            $table.find("tr:last td:nth-child("+index+")  input:checkbox").attr("checked", true);
        }
    });
    $(':checkbox[name*!="ColumnClear"]').click(function() {
        if ( this.checked === true ) {
            var $table = $(this).closest("table");
            var col = $(this).closest("tr").children().index($(this).closest("td"));
            var index = col+1;
            $table.find("tr:last td:nth-child("+index+")  input:checkbox").attr("checked", false);
        }
    });
}

некоторые из HTML:

<table summary="Which of the following products/systems does your company own and/or plan to purchase within the next 12 months? (Please select all that apply for each column)" class="mrQuestionTable" style="">
    <tr>
    <td id="Cell.0.0"></td>
    <td id="Cell.1.0" class="mrGridQuestionText" 
    <span class="mrQuestionText" style="color: #000000;;font-weight: bold;">Currently own</span>
    </td>
    <td id="Cell.2.0" class="mrGridQuestionText" 
    <span class="mrQuestionText" style="color: #000000;;font-weight: bold;">Plan to purchase</span>
    </td>
    </tr>
    <tr>
    <td id="Cell.0.1" class="mrGridCategoryText" 
    <span class="mrQuestionText" style="">Creative/Design software</span>
    </td>
    <td id="Cell.1.1" 
    <div></div>
    <input type="checkbox" name="_QQ5_Qdesign_Qrating_Cown" id="_Q0_Q0_Q0_C0" class="mrMultiple" style="" value="own"></input>
    </td>
    <td id="Cell.2.1" style="text-Align: Center;vertical-align: Middle;border-color: black;border-style: Solid;border-width: 1px;">
    <div></div>
    <input type="checkbox" name="_QQ5_Qdesign_Qrating_Cplan" id="_Q0_Q0_Q0_C1" class="mrMultiple" style="" value="plan"></input>
    </td>
    </tr>
    <tr>
    <td id="Cell.0.21" class="mrGridCategoryText" 
    <span class="mrQuestionText" style="">None of the above</span>
    </td>
    <td id="Cell.1.21" 
    <div></div>
    <input type="checkbox" name="_QQ5_Qnon__ColumnClear1_Qrating_Cown" id="_Q0_Q20_Q0_C0" class="mrMultiple" style="" value="own"></input>
    </td>
    <td id="Cell.2.21" 
    <div></div>
    <input type="checkbox" name="_QQ5_Qnon__ColumnClear1_Qrating_Cplan" id="_Q0_Q20_Q0_C1" class="mrMultiple" style="" value="plan"></input>
    </td>
    </tr>
    </table>

1 Ответ

2 голосов
/ 23 июня 2011

Предполагая, что каждый флажок является своей собственной таблицей, а флажки «очистить все» имеют name="ColumnClear", второй блок должен быть:

$(':checkbox[name*!="ColumnClear"]').click(function() {
    if ( this.checked === true ) {
        var $table = $(this).closest("table").find(':checkbox[name*="ColumnClear"]').attr("checked", false);
    }
});
...