我在第一个<td>
中有一个带有复选框的表格,现在我只想检查选中复选框的<tr>
。
<table>
<tr>
<th style="width: 5%;">Select</th>
<th style="width: 5%;">ID</th>
<th style="width: 10%;">Name</th>
<th style="width: 5%;">Order</th>
<th style="width: 5%;">Price</th>
</tr>
<c:forEach var="pack" items="${PackList}" varStatus="rowCounter">
<tr class="allPackClass">
<td class="selective_CatCreation"><input type="checkbox" name="packIdCatCreate" value="${pack.packId}"></td>
<td>${pack.packId}</td>
<td>${pack.name}</td>
<td><input type="text" name="packDisOrder" disabled="disabled" style="width: 20px;" value=""></td>
<td><input type="text" name="packPrice" disabled="disabled" style="width: 20px;" value=""></td>
</tr>
</c:forEach>
</table>
验证 - &gt;
$("tr.allPackClass").each(function() {
if($(this).is(":checked")== true){
if($(this).closest('tr').find('input:text').val() == ""){
$("#validationDiv_").html("<span style='font-size:12px;color:red;'>Fileds are missing</span>");
return false;
}
}
});
请帮忙,我做错了什么?
答案 0 :(得分:2)
您的if
条件无法正常工作,因为each
循环this
内部引用了tr
元素,而不是其中的checkbox
更改tr过滤器,使其仅获取带有选中复选框的那些trs,然后删除其中的if
条件
$("tr.allPackClass").has('input[name="packIdCatCreate"]:checked').each(function() {
离
$("tr.allPackClass").has('input[name="packIdCatCreate"]:checked').each(function() {
var $emtpy = $(this).find('input:text').filter(function() {
return $.trim(this.value).length == 0;
});
if ($emtpy.length) {
$("#validationDiv_")
.html("<span style='font-size:12px;color:red;'>Fileds are missing</span>");
return false;
}
});
<强>更新强>:
var valid = $("tr.allPackClass").has('input[name="packIdCatCreate"]:checked').filter(function() {
return $(this).find('input:text').filter(function() {
return $.trim(this.value).length == 0;
}).length > 0;
}).length == 0;
if (!valid) {
$("#validationDiv_").html("<span style='font-size:12px;color:red;'>Fileds are missing</span>");
return false;
}}
答案 1 :(得分:0)
@dude你在这里有错误
if($(this).is(":checked")== true)
应该像
if($(this).find('[name=packIdCatCreate]').is(":checked")== true)
休息应该有效,
虽然没有通过