При нажатии одного флажка другой флажок должен быть отключен - PullRequest
0 голосов
/ 27 мая 2019

У меня есть 2 столбца с флажками, когда один столбец отмечен, все соответствующие проверяются аналогично во 2-м столбце, но проблема здесь, клиент хочет, когда установлен один столбец флажка, тогда 2-й столбец будет отключен или выдает предупреждающее сообщение для проверки только один столбец за раз?

function SelectAll1(headerchk, gridId) {

        var gvcheck = document.getElementById(gridId);
        var i, j;
        if (headerchk.checked) {
            for (i = 0; i < gvcheck.rows.length - 1; i++) {
                var inputs = gvcheck.rows[i].getElementsByTagName('input');
               for (j = 1; j < inputs.length; j++) {
                 if (inputs[j].type == "checkbox") {
                        inputs[j].checked = true;
                    }
                }
            }
        }
        else {
            for (i = 0; i < gvcheck.rows.length - 1; i++) {
                var inputs = gvcheck.rows[i].getElementsByTagName('input');
                 for (j = 1; j < inputs.length; j++) {
                   if (inputs[j].type == "checkbox") {
                        inputs[j].checked = false;
                    }
                }
            }
        }
    }

Можно ч

Ответы [ 2 ]

0 голосов
/ 27 мая 2019

Исходя из небольшой информации, я предполагаю, что:

SelectAll1 снять или установить все флажки в столбце 1.
SelectAll2 снять или установить все флажки в столбце 2.
headerchk это флажок, когда щелкает, очищает или устанавливает все.

Сделайте это изменение:

  1. После каждой строки в коде, где SelectAll1( headerchk , gridId ) вызывается, вы меняете его на SelectAll1( headerchk .checked, gridId ).

  2. Вставьте еще одну строку под этой строкой с отрицанием: SelectAll2(! headerchk . checked, gridId )

  3. После каждой строки в коде, где вызывается SelectAll2( headerchk , gridId ), вы меняете его на SelectAll2( headerchk.checked, gridId ).

  4. Вставьте еще одну строку под этой строкой с отрицанием: SelectAll1(! headerchk .checked, gridId )

Вы только показали мне код для SelectAll1, поэтому я предполагаю, что SelectAll2 такой же, когда вы еще не знаете, как их отличать.Поправь меня, если это не так!

Продолжите, изменив функцию SelectAll1 на следующее:
function SelectAll1(header_checked, gridId) {
    var gvcheck = document.getElementById(gridId);
    var i, j;
    for (i = 0; i < gvcheck.rows.length - 1; i++) {
        var inputs = gvcheck.rows[i].getElementsByTagName('input');
        for (j = 1; j < inputs.length; j++) {
            if (inputs[j].type == "checkbox") {
                inputs[j].checked = header_checked;
            }
        }
    }
}

Остальная часть и если она устранена путем перемещения условия в присвоение, которое является истинным илиложный.Часть .checked выходит за пределы функции.


Сделайте то же самое изменение в SelectAll2

Проверьте, работает ли оно, и сообщите мне!

0 голосов
/ 27 мая 2019

Я действительно не знаю, что вы пытаетесь сделать без HTML, но вот начало, которое вы можете создать.

var selected = $('.check:checked').length;

if (selected >= 1) {
  $('.check').prop('disabled', true);
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="checkbox" class="check" checked="checked">
<input type="checkbox" class="check">
<input type="checkbox" class="check">
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...