如何检测Checkbox是否勾选并为指定复选框添加/移除blocked类
问题解决:复选框状态控制输入框样式与可用性
你的代码存在语法错误:回调函数的闭合括号缺失(}后面少了)),导致代码无法正常运行。另外可以用更简洁的写法实现需求,以下是修正方案:
基础修正版(修复语法错误)
$('.off').change(function(){ if($(this).is(':checked')) { $('input[name="hotl"]').addClass('blocked'); // 若需要真正禁用输入框(而非仅样式),可添加以下代码 // $('input[name="hotl"]').prop('disabled', true); } else { $('input[name="hotl"]').removeClass('blocked'); // $('input[name="hotl"]').prop('disabled', false); } });
简化优化版
利用jQuery的toggleClass方法,传入布尔值直接控制类的添加/移除,代码更简洁:
$('.off').change(function(){ const isChecked = $(this).is(':checked'); $('input[name="hotl"]').toggleClass('blocked', isChecked); // 同步禁用/启用输入框(可选,根据实际需求) // $('input[name="hotl"]').prop('disabled', isChecked); });
注意事项
- 确保代码在DOM加载完成后执行,可包裹在
$(document).ready(function(){ /* 代码 */ })中,或直接放在页面底部</body>标签前 - 如果仅靠
blocked类的样式无法阻止用户操作输入框,建议同步设置disabled属性,从功能层面限制输入
内容的提问来源于stack exchange,提问作者Sohms
相关产品推荐
相关产品推荐

