如何修正选中Option2单选框时误禁用Option1单选框的问题?
解决单选按钮组的选择性禁用问题
你的问题根源在于给所有单选按钮都绑定了点击事件——不管点击的是哪个组的选项,都会执行禁用"option 1"组未选中项的逻辑,所以点击Option2的单选框时也会触发这个不该有的操作。
只需要把事件绑定的范围缩小到"option 1"组的单选按钮上,就能精准控制触发逻辑。另外,对于disabled这类布尔属性,jQuery更推荐使用prop()方法而非attr(),设置状态会更可靠。
修正后的jQuery代码如下:
$(":radio[name='option 1']").click(function() { var radioName = "option 1"; $(":radio[name='" + radioName + "']:not(:checked)").prop("disabled", true); });
代码说明:
- 首先通过
$(":radio[name='option 1']")精准定位"option 1"组的所有单选按钮,只为它们绑定点击事件。 - 当用户点击该组内的任意选项时,才会触发逻辑:找到同组内未被选中的单选按钮,用
prop("disabled", true)禁用它们。 - 点击其他组(比如"option 2")的单选按钮时,这个事件不会被触发,所以"option 1"组的状态完全不受影响。
如果后续需要支持重置单选组状态的场景,还可以扩展逻辑添加启用操作,但根据你的核心需求,上面的代码已经能完美解决问题了。
内容的提问来源于stack exchange,提问作者neek05
相关产品推荐
相关产品推荐

