2

我有一个第一个带有复选框的表格<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>

验证 -->

$("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;
            }
        }
    });

请帮忙,我在哪里做错了?

4

2 回答 2

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;
}}
于 2013-08-26T06:53:39.723 回答
0

@dude 你这里有错误

if($(this).is(":checked")== true)

应该像

if($(this).find('[name=packIdCatCreate]').is(":checked")== true)

休息应该工作,

虽然没有通过

于 2013-08-26T07:03:00.913 回答