我有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");
});
答案 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");
}
}
});
});
});