复选框值返回并添加到字符串
Posted
技术标签:
【中文标题】复选框值返回并添加到字符串【英文标题】:Check boxes values returned and added to string 【发布时间】:2020-12-16 22:04:13 【问题描述】:我正在尝试在表格中选择一行复选框,并且对于表格中的每个 TD,它需要检查复选框是否已打勾,是否为 1,否则为 0。 我需要一个 for 循环,我将能够在每个 td 上循环,确定它是否被检查,如果是,则将 1 添加到二进制字符串或将 0 添加到二进制字符串。
这应该以每个 tr 都有自己唯一的二进制字符串结束,这些字符串来自已选中或未选中的复选框。我还想为每个 tr 设置自己的唯一 ID。
下面的代码是我目前所拥有的,但我假设我走错了方向。
任何帮助表示赞赏。谢谢
[ ID: 000, binary: 0101010101 ]
function generate()
$("#actionTable>tbody").children("tr").each(function(i, rowitem)
$(rowitem).children("td").each(function(index, item)
if (index == 0)
var amid = $(item).data("amid");
else
//Handle checkbox
var checked = $(item.firstChild).prop('checked')
);
);
【问题讨论】:
几个问题...你能edit澄清这个问题吗? (1) 这个问题被标记为datatables
- 你实际上是在使用DataTables,还是这只是一个标准的html表格? (2) 我假设你有一个复选框的初始状态 - 它是如何提供的?
【参考方案1】:
您可以为此使用嵌套的 map()。外部映射迭代行
内部映射迭代每个输入的checked
属性,转换为数字,然后转换为字符串,然后加入数组以获得最终字符串。
我不知道 html 是什么样的,所以暂时只使用每行的行索引
const res = $('tr').map((i, el) =>
const binary = $(el).find(':checkbox').map((_, inp) =>
return `$+inp.checked`;
).get().join('');
return index: i, binary;
).get()
console.log(res)
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table>
<tr>
<td><input type="checkbox"></td>
<td><input type="checkbox" checked></td>
<td><input type="checkbox"></td>
<td><input type="checkbox"></td>
</tr>
<tr>
<td><input type="checkbox" checked></td>
<td><input type="checkbox"></td>
<td><input type="checkbox" checked></td>
<td><input type="checkbox"></td>
</tr>
</table>
【讨论】:
以上是关于复选框值返回并添加到字符串的主要内容,如果未能解决你的问题,请参考以下文章
从购物车表单复选框返回字符串(是/否)到 wordpress 元框
通过复选框返回的对象 id 在 id 字符串中添加了额外的空间
jquery multiselect下拉列表复选框怎么动态添加option并赋值
在 MahApps Metro DataGridCheckBoxColumn 中,我如何以编程方式返回复选框值? (并修复额外的行)