多个复选框单击

时间:2013-12-14 09:37:51

标签: javascript jquery asp.net-mvc

表格标签

<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;
            }
        });
单击我的复选框,但它始终显示警告消息“请选择选项”

的其他部分

1 个答案:

答案 0 :(得分:1)

看起来您的DOM中有多个输入字段id="chkbox"。这会导致无效的标记,并且您的$('#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是什么,它是单个按钮还是每个表行都有这样的按钮。

如果是单个按钮,那么之前的代码应该没问题 - &gt;它确保至少有一个复选框被选中。

如果您有许多这样的按钮,那么您应该为它们使用类选择器(在为每个按钮指定相同的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() {