javascript - 如何将以前添加的项目保存在隐藏的输入标签中?
问题描述
我有一个带有复选框的 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。
解决方案
尝试这个 :
...
var previousIds = $("#allStudentIds").val();
$("#allStudentIds").val(previousIds+selected);
...
如果有可能重复,您可以在设置值输入id
之前将其删除#allStudentIds
推荐阅读
- xcode - 在 SwiftUI 中打开 URL 时出现“输入参数无效”错误
- azure-devops - 每次从 Azure DevOps 推送或拉取时都必须输入密码
- bash - 在执行 bash 脚本时得到错误的输出结果
- python-2.7 - python2.7无法运行jupyter notebook
- regex - Bash 编程:查找匹配的行
- swift - UISheetPresentationController 的解除动画旁边的动画
- node.js - Express 正在将 HTML 实体应用于 JSON 正文
- reactjs - Redux thunk 不在数组上显示数据
- flutter - Flutter Freezed 模型升级后的 JsonSerializable 和 JsonKey 问题
- python - 为什么在这里使用 `any` 会导致程序挂起,但使用 `for` 循环不会?