Я хочу установить флажок «флажок», когда я нажимаю на кнопку c td в моей таблице - PullRequest
3 голосов
/ 17 января 2020

Привет, ребята. Я хочу, чтобы мой флажок был «отмечен» после того, как я щелкнул по последнему полю td строки. Я пробовал это с JQuery, но, к сожалению, я всегда проверял все флажки. Я просто хочу проверить тд в строке, по которой щелкнул.

Вот так я строю свою таблицу.

<table class="table table-striped" id="notfallTable">
    <tr>
        <th value="name">Name</th>
        <th>Nachname</th>
        <th>Nummer</th>
        <th>Abteilung</th>
        <th id="thCheckbox"><button id="checkAll" class="btn btn-success">Check all</button>
        </th>
   </tr>
</table>
$.getJSON("NotfallSMS.json", function(data){
    var items=[];
    var checkbox="test";
    $.each(data, function(key, val){
        items.push("<tr>");
        items.push("<td contenteditable>"+val.Name+"</td>");
        items.push("<td contenteditable>"+val.Nachname+"</td>");
        items.push("<td contenteditable>"+val.Nummer+"</td>");
        items.push("<td contenteditable>"+val.Abteilung+"</td>")
        items.push("<td class='check'><input class='check' type='checkbox'>"+""+"</input></td>");

        items.push("</tr>");
    });
    $("<tbody/>", {html: items.join("")}).appendTo("table");
});

Надеюсь, вы мне поможете. Привет Эльфдоу

Ответы [ 2 ]

2 голосов
/ 17 января 2020

Для этого вы можете подключить обработчик события щелчка к элементам td.check, которые используют find() для извлечения флажка в ячейке и переключают его свойство checked, например:

$('tr td.check').on('click', function() {
  $(this).find(':checkbox').prop('checked', (i, checked) => !checked);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table class="table table-striped" id="notfallTable">
  <tr>
    <th value="name">Name</th>
    <th>Nachname</th>
    <th>Nummer</th>
    <th>Abteilung</th>
    <th id="thCheckbox"><button id="checkAll" class="btn btn-success">Check all</button>
    </th>
  </tr>
  <tbody>
    <tr>
      <td contenteditable>val.Name</td>
      <td contenteditable>val.Nachname</td>
      <td contenteditable>val.Nummer</td>
      <td contenteditable>val.Abteilung</td>
      <td class="check"><input class="check" type="checkbox" /></td>
    </tr>
    <tr>
      <td contenteditable>val.Name</td>
      <td contenteditable>val.Nachname</td>
      <td contenteditable>val.Nummer</td>
      <td contenteditable>val.Abteilung</td>
      <td class="check"><input class="check" type="checkbox" /></td>
    </tr>
  </tbody>
</table>

Однако стоит отметить, что вы можете добиться точно такого же поведения без JS или jQuery, используя вместо этого CSS. Заверните флажок в label и используйте CSS, чтобы установить его на display: block:

label {
  display: block;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table class="table table-striped" id="notfallTable">
  <tr>
    <th value="name">Name</th>
    <th>Nachname</th>
    <th>Nummer</th>
    <th>Abteilung</th>
    <th id="thCheckbox"><button id="checkAll" class="btn btn-success">Check all</button>
    </th>
  </tr>
  <tbody>
    <tr>
      <td contenteditable>val.Name</td>
      <td contenteditable>val.Nachname</td>
      <td contenteditable>val.Nummer</td>
      <td contenteditable>val.Abteilung</td>
      <td class="check"><label><input class="check" type="checkbox" /></label></td>
    </tr>
    <tr>
      <td contenteditable>val.Name</td>
      <td contenteditable>val.Nachname</td>
      <td contenteditable>val.Nummer</td>
      <td contenteditable>val.Abteilung</td>
      <td class="check"><label><input class="check" type="checkbox" /></label></td>
    </tr>
  </tbody>
</table>
0 голосов
/ 17 января 2020
$('.check').on('click', function() {
    $($(this).find('input')[0]).prop('checked', true);
}

И удалить класс проверки из ввода

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