一旦选择了仓库,我试图禁用具有不同仓库位置的复选框。例如,如果我检查加利福尼亚,我想禁用所有来自其他州的复选框。我试图基于属性whseID来做它但我无法弄清楚如何让jquery在该属性之间进行区分。有时我会从1个仓库运送多个物品。因此,当我在加利福尼亚州检查1个复选框时,我需要另一个在加利福尼亚州继续启用,但我需要华盛顿和亚利桑
<table width="50%" border="0" cellspacing="0" cellpadding="0">
<tr class="grdnt">
<th style="color:black;">Checkbox</th>
<th style="color:black;border-left:1px solid;">Warehouse</th>
<th style="color:black;border-left:1px solid;">Item</th>
</tr>
<tr id="transferDetailCol">
<td>
<input type="checkbox" class="tfrCheck" name="tfrCheck[]" whseID="CA" />
</td>
<td class="Whse">California</td>
<td class="Item">J29458</td>
</tr>
<tr id="transferDetailCol">
<td>
<input type="checkbox" class="tfrCheck" name="tfrCheck[]" whseID="CA" />
</td>
<td class="Whse">California</td>
<td class="Item">J29478</td>
</tr>
<tr id="transferDetailCol">
<td>
<input type="checkbox" class="tfrCheck" name="tfrCheck[]" whseID="WA" />
</td>
<td class="Whse">Washington</td>
<td class="Item">J29478</td>
</tr>
<tr id="transferDetailCol">
<td>
<input type="checkbox" class="tfrCheck" name="tfrCheck[]" whseID="AZ" />
</td>
<td class="Whse">Arizona</td>
<td class="Item">J29478</td>
</tr>
</table>
$(document).on('click', '.tfrCheck', function () {
var allCheckBox = $(".tfrCheck");
var count_checked = allCheckBox.filter(":checked").length;
var whseID = $(this).attr('whseID');
if (count_checked >= 1) {
$(".tfrCheck:contains(whseID)").attr('disabled', 'disabled');
//$(".tfrCheck:not(:checked)").attr('disabled','disabled');
} else {
$(".tfrCheck").removeAttr('disabled');
}
});
答案 0 :(得分:3)
Ragnar的答案很接近,但由于您希望禁用其他州,请使用
$('.tfrCheck:not([whseID='+ whseID +'])').attr('disabled', 'disabled');
答案 1 :(得分:2)
尝试使用此行:
$('.tfrCheck:not([whseID='+ whseID +'])').attr('disabled', 'disabled');
答案 2 :(得分:1)
&#34;属性不等于选择器&#34;应该有所帮助:
allCheckBox.filter('[whseID!="' + whseID + '"]').attr('disabled', true);