请检查以下给定的小提琴手。
我希望在选中一个时禁用所有其他...在创建的提琴手上按预期工作。但当我取消选中已经选中的那个时,我希望所有这些都被启用...
我的代码出了什么问题。请帮我修理一下。
我也想知道是否有任何关于unlick事件的内容......
下面是我的代码..
$(".session_outcome_chk_list").click(function () {
$('.session_outcome_chk_list').each(function () {
if ($(this).is(":checked")) {
$(this).removeAttr("disabled");
} else {
$(this).attr("disabled", true);
}
});
});
编辑:
我还要求在页面加载时执行相同的操作,例如在选择一个复选框时提交,在formload上也应检查天气是否选中,然后执行禁用。
管理表单的更新方案,其中您已经在页面加载时选择了一个项目。
答案 0 :(得分:4)
您可以使用一行代码执行此操作:
$('.session_outcome_chk_list').not(this).prop('disabled', this.checked);
此外,您应该绑定change()
事件,而不是click()
,以便在通过除点击之外的方法更改复选框的状态时执行代码(按键,例子)。
编辑:如果您希望代码在首次加载页面时运行,只需在绑定后触发事件(您还必须修改该函数才能使其正常工作) ):
$('.session_outcome_chk_list').change(function () {
$('.session_outcome_chk_list').not(':checked').prop('disabled', !!$('.session_outcome_chk_list:checked').length);
}).change(); // <-- triggers the change event
答案 1 :(得分:3)
试试这个
$(".session_outcome_chk_list").click(function () {
var current=$(this);
if (current.is(":checked")) {
$('.session_outcome_chk_list').attr("disabled", true);
current.removeAttr("disabled");
}
else {
$('.session_outcome_chk_list').attr("disabled", false);
}
});