C# js 判断table中tr否存在相同的值
html 中如:
实现:table数据表格中,点击删除按钮时,验证相同子订单号条数是否大于1,大于允许删除。保证数据表格中只有唯一的一条子订单号数据。
<table style="width: 100%; background-color: #fff;" cellspacing="0" cellpadding="6" class="table1" id="GaiHuoTable">
<tbody>
<tr style='background-color: #F7F7F7; height: 40px; font-weight: bold;'>
<td align='center'>
子订单号
</td>
<td align='center'>
货号
</td>
<td align='center'>
操作
</td>
</tr>
<tr height="24" bgcolor="#ffffff" onmouseover="this.style.backgroundColor='#C6D6E7'" onmouseout="this.style.backgroundColor='#ffffff'" data_type="detail" id="<%=item["GuId"]%>" guid="<%=item["GuId"]%>" data_mark="edit" style="background-color: rgb(255, 255, 255);">
<td align="left" style="width: 120px">
<%=item["ZiOuterId"]%>
<input type="hidden" id="<%=item["GuId"]%>_ZiOuterId"/>
</td>
<td align="left" style="width: 120px">
<input type="text" class="messager-input" id="<%=item["GuId"]%>_goodsId" style="width: 120px" value="TCA017a" autocomplete="off">
</td>
<td>
<a class="redbutton" onclick="DeleteDetail('<%=item["GuId"]%>');">删除</a>
</td>
</tr>
</table>
Js如:
function checkUniqueBeforeDelete(guid) {
var trs = document.querySelectorAll('#GaiHuoTable tr[data_type="detail"]');
var idCount = {};
// 遍历所有明细行统计ID
for (var i = 0; i < trs.length; i++) {
// 获取当前行的guid
var rowGuid = trs[i].getAttribute('guid');
var hiddenInput = trs[i].querySelector('input[id="' + rowGuid + '_ZiOuterId"]');
var ziOuterId = hiddenInput ? hiddenInput.value.trim() : '';
if (ziOuterId) {
idCount[ziOuterId] = (idCount[ziOuterId] || 0) + 1;
}
}
// 获取当前行的ZiOuterId
var currentTr = document.getElementById('tr_' + guid);
var currentGuid = currentTr.getAttribute('guid');
var currentIdInput = currentTr.querySelector('input[id="' + currentGuid + '_ZiOuterId"]');
var currentId = currentIdInput ? currentIdInput.value.trim() : '';
if (!currentId) {
return false;
}
return idCount[currentId] > 1;
}
调用:
function DeleteDetail(guid) {
if (!checkUniqueBeforeDelete(guid)) {
alert('只有超过相同的两条明细才可以删除');
return;
}
}