首页 > 解决方案 > 如何将以前添加的项目保存在隐藏的输入标签中?

问题描述

我有一个带有复选框的 HTML 表,该表是根据下拉列表中选择的过滤器值生成的被一一添加到隐藏的输入标签中。例如,如果我选择了一个名为 5th class 的过滤器,则 5th class 的学生会在带有复选框的表格中列出。现在,如果我检查了一些学生,他们的 ID 已成功存储隐藏的输入标签。

var selected = [];
//On click check all records
$(document).on("click", "#completebatch,.commoncheckbox", function() {

selected = $('.commoncheckbox:checked').map((i, el) => {
  return $(el).attr('value')
}).get();

$("#allStudentIds").val(selected);

});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
  <thead>
    <th><input onclick="checkenabledisable()" id="completebatch" type="checkbox"></th>
  </thead>

  <tbody>
    <tr>
      <td><input class="commoncheckbox disabled-check" value="578" type="checkbox" disabled=""></td>
      <td>abc</td>
    </tr>

    <tr>
      <td><input class="commoncheckbox" value="357" type="checkbox"></td>
      <td>abc</td>
    </tr>
    <tr>
      <td><input class="commoncheckbox" value="123" type="checkbox"></td>
      <td>abc</td>
    </tr>
  </tbody>
</table>

<input type="hidden" value="" id="allStudentIds">

现在假设我从 6 年级中选择了一些学生。表格中将成功生成六年级学生名单。现在,当我选中任何复选框时,所有先前选择的项目都消失了(即在上面的示例中,隐藏输入标签中的 5 年级学生的 id 消失了)。

我希望这不应该发生。我想在隐藏的输入标签中保留以前选择的 id。

标签: javascriptjquery

解决方案


尝试这个 :

...
var previousIds = $("#allStudentIds").val();
$("#allStudentIds").val(previousIds+selected);
...

如果有可能重复,您可以在设置值输入id之前将其删除#allStudentIds


推荐阅读