单击多个复选框

Multiple check box clicking

本文关键字:复选框 单击      更新时间:2023-09-26

表格标签

<tr>
   <td>
     <input id="chkbox" name="chkbox" type="checkbox" class="Checkbox" value = <%: item.field1 %> />
   </td>
   <td>
      <%: item.field1 %>
   </td>
   <td>
      <%: item.field2 %>
   </td>
   </tr>

我的Jquery

        $("#Free").click(function fn() {
            if ($('#chkbox').is(':checked')) {
                return true;
            }
            else {
                alert("Please Select option");
                return false;
            }
        });

我的复选框被点击了,但它总是显示警报消息"请选择选项"的其他部分

使用id="chkbox"的DOM中似乎有多个输入字段。这将导致无效标记,并且$('#chkbox')选择器始终返回第一个元素。

您可以使用类名:

<input name="chkbox" type="checkbox" class="Checkbox" value = <%: item.field1 %> />

然后:

$("#Free").click(function() {
    if ($('.Checkbox:checked').length > 0) {
        return true;
    }
    else {
        alert("Please Select option");
        return false;
    }
});

此外,从您的问题中,还不太清楚这个#Free是什么,它是一个单独的按钮还是在每个表行上都有这样的按钮。

如果它是一个按钮,那么前面的代码应该是好的->它确保至少有一个复选框被选中。

如果你有很多这样的按钮,那么你应该为它们使用一个类选择器(在为每个按钮分配相同的class之后),然后:

$(".Free").click(function() {
    var checkbox = $(this).closest('tr').find('.Checkbox');
    if (checkbox.is(':checked')) {
        return true;
    }
    else {
        alert("Please Select option");
        return false;
    }
});

还要注意,您在.click事件中有一些无效的javascript:

.click(function fn() {

我修复了使用匿名函数:

.click(function() {