Почему я не могу отметить больше, чем флажки? - PullRequest
0 голосов
/ 01 июня 2019

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

Создал переменную, чтобы проверить, проверен ли ввод, если нет, проверено!если да, сделайте возможным снятие флажка в любой части тр.

  $("table tbody tr").on('click',function(){
    var checked = $("input:checkbox").is(':checked');
    if(checked){
     $("input:checkbox",this).prop('checked', false);
     console.log(checked);      
    }else{
     console.log(checked);
     $("input:checkbox",this).prop('checked', true);
    }

HTML:

<table class="table table-responsive" id="osTable" width="100%" cellspacing="0" align="center">
        <thead align="center">
            <tr>
             <th>#</th>         
             <th>Id</th>        
             <th>Name</th>                                                  
            </tr>
        </thead>
        <tbody>
         {%for data in data%}
         <tr>
           <td><input type="checkbox" name="{{data[0]}}"></td>
           <td>{{data[0]}}</td>
           <td>{{data[1]}}</td>       

         </tr>
         {%endfor%}
        </tbody>        
    </table>

Ответы [ 2 ]

1 голос
/ 01 июня 2019

Вы можете сократить все эти три строки, используя with:

$("table tbody").on('click',"tr",function(){
  with($("input:checkbox",this))
    prop('checked',!is(':checked'));
});
1 голос
/ 01 июня 2019

Изменение

$("input:checkbox").is(':checked');

до

$("input:checkbox", this).is(':checked');

Вы хотите только проверить, установлен ли флажок в вашей строке (this в соответствии с вашей привязкой) или нет. В настоящее время вы проверяете, установлен ли флажок any где-либо Присвоение селектору this в качестве второго аргумента ограничивает область действия селектора только строкой, по которой щелкнули.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...