如何使用JQuery检查MVC中选中的复选框?

时间:2018-05-30 22:08:47

标签: jquery asp.net-mvc

我有3个复选框,想看看选中了哪个复选框[反之亦然]。如果选中Group1,则应返回Group1:true,反之亦然。

  @Html.CheckBoxFor(m => m.Group1, new { @class = "chk",@id= "Group1" })                
  @Html.CheckBoxFor(m => m.Group2, new { @class = "chk", @id = "Group2"})               
  @Html.CheckBoxFor(m => m.Group3, new { @class = "chk", @id = "Group3"})

脚本

   $('.chk').change(function () {  
         var id = $(this).val();          
          $('#' + id).is(":checked");
        });

2 个答案:

答案 0 :(得分:1)

您可以通过在更改侦听器中使用$(this)对象来完成此操作。以下是如何执行此操作的示例:

$('.chk').change(function () {          
    console.log($(this).attr('id') + ":" + $(this).is(':checked'))
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type='checkbox' id='Group1' class='chk'>
<input type='checkbox' id='Group2' class='chk'>
<input type='checkbox' id='Group3' class='chk'>

这里我们获取属性'id'来获取已更改的控件的id,然后将其与.is(':checked')的结果连接起来。当然,在我的例子中,我只是控制台。记录结果,但你可以返回或做任何你需要做的事情。

希望有所帮助。

答案 1 :(得分:1)

如果您想了解有关活动后其他复选框状态的更多信息,可以使用(带注释):

$(function () {
    $(".chk").on("change", function () {
        var eventId = $(this).attr("id");
        // checked or unchecked for change event
        if ($(this).is(":checked")) {
            console.log("=> " + eventId + " has been checked");
        } else {
            console.log("=> " + eventId + " has been unchecked");
        }

        // Iterate all checkboxes
        $.each($(".chk"), function () {
            var id = $(this).attr("id");
            if (id !== eventId) {
                if ($(this).is(":checked")) {
                    console.log("=> " + id + " is checked");
                } else {
                    console.log("=> " + id + " is not checked");
                }
            }
        });
    });
});