【发布时间】:2020-03-24 09:58:30
【问题描述】:
我有一个基于用户从下拉列表中选择的数字动态创建的表。该表由 3 个复选框组成。每行最多可勾选 2 个复选框。
复选框 2 和 3 的行为类似于单选按钮(我知道只使用单选按钮会让我的生活更轻松,但表格看起来不正确,因为只有一个复选框和 2 个单选按钮)。如果选择 2,然后用户点击 3,则 2 将变为未选中状态。
我在这里找到了这个脚本:http://jsfiddle.net/44Zfv/724/,它运行良好,但是当我尝试将它集成到我的项目中时它不起作用。
我在这里创建了一个小提琴:https://jsfiddle.net/pcqravwj/1/ 这演示了场景。正如您将看到的那样,第 0 行的复选框不是动态创建的,并且两个复选框都不能被选中。我已将 .cbh 类添加到我在第 1 行动态创建的复选框中。但是,可以选中所有 3 个复选框,但我确实注意到,如果选中第 0 行中的复选框,它会清除第 1 行中具有相同类的复选框。
这是我用来尝试控制复选框行为的一段代码
$(".chb").prop('checked', false);
$(this).prop('checked', true);
console.log("test3")
});
我只是想知道是否有人可以帮助我弄清楚这里发生了什么。作为一个新手,脚本看起来应该可以工作,我正在努力寻找错误。
非常感谢您的帮助。
谢谢!
【问题讨论】:
-
出现问题是因为您正在动态创建元素。您应该改用事件委托来解决此问题。此问题的更多信息:stackoverflow.com/questions/34896106/… - 请记住,您也会遇到其他问题。就像所有行都具有相同的类一样,因此选择其中一行中的任何内容都会取消选择所有其他行。
标签: javascript jquery checkbox radio-button