jQuery实现复选框不可勾选(非disabled)的正确方案咨询
解决方案
要实现复选框无法取消勾选但保持正常视觉状态,推荐以下两种方法:
方法一:监听点击事件强制保持勾选
这种方法会在用户点击复选框时,立刻将其状态重置为勾选,确保无法取消:
// 锁定复选框,禁止取消勾选 $('input[type="checkbox"][name="feature1"]:first').on('click', function() { $(this).prop('checked', true); });
如果需要恢复复选框的可勾选状态,只需解绑该点击事件即可:
// 恢复可勾选功能 $('input[type="checkbox"][name="feature1"]:first').off('click');
方法二:监听状态变化事件恢复勾选
通过监听复选框的change事件,当检测到它被取消勾选时,强制恢复勾选状态:
// 锁定复选框 $('input[type="checkbox"][name="feature1"]:first').on('change', function() { if (!$(this).is(':checked')) { $(this).prop('checked', true); } }); // 恢复可勾选功能 $('input[type="checkbox"][name="feature1"]:first').off('change');
你之前代码报错的原因
$('...').on("click", true)这种写法不符合jQuery的事件绑定规范:on()方法的第二个参数应为事件数据对象或委托选择器,传入布尔值true会导致jQuery内部调用事件处理函数时出错,从而抛出你看到的类型错误。
内容的提问来源于stack exchange,提问作者Shen Henry
相关产品推荐
相关产品推荐

