Javascript 当一个选项(复选框)处于启用状态时,是否有方法单击多个复选框?当该选项处于禁用状态时,您一次只能选择一个复选框?

Javascript 当一个选项(复选框)处于启用状态时,是否有方法单击多个复选框?当该选项处于禁用状态时,您一次只能选择一个复选框?,javascript,jquery,reactjs,checkbox,bootstrap-4,Javascript,Jquery,Reactjs,Checkbox,Bootstrap 4,我希望能够执行上图中的功能。然而,它不会起作用 $customSwitches.clickfunction{ var$this=$this; 如果$this.data“点击”{ 未点击的元素; $this.data'clicked',false; $document.on'click',radio1,radio2,radio3,radio4.notthis.prop'checked',false; }; }否则{ alertelement点击; $this.data'clicked',true;

我希望能够执行上图中的功能。然而,它不会起作用

$customSwitches.clickfunction{ var$this=$this; 如果$this.data“点击”{ 未点击的元素; $this.data'clicked',false; $document.on'click',radio1,radio2,radio3,radio4.notthis.prop'checked',false; }; }否则{ alertelement点击; $this.data'clicked',true; } };
当前代码存在一些语法问题,并使用嵌套事件处理程序,这不是一种好的设计模式

基本上,您正在尝试基于第一个复选框状态构建一个动态复选框限制器。要做到这一点,只需确定是否选中了第一个框,然后计算选中区域的数量,查看其是否超出限制。如果是,则不允许选中当前框。试试这个:

让$allowMulti=$'allow\u multi'。在'change'上,函数{ 如果!这个。检查 $'.region.prop'checked',false;//如果不允许多重检查,请删除所有检查 }; $'.region'。关于“更改”,函数{ 让selectedCount=$”。区域:选中。长度; 如果!$allowMulti.prop'checked'&selectedCount>1 $this.prop'checked',false; }; 选择多个区域

1. 2. 3. 4.
在组中每次单击复选框时,都可以选中CustomSwitchs的checked属性。如果未选中,则可以计算组中已选中复选框的长度;如果大于1,则可以阻止默认事件

单击CustomSwitchs时,可以重置组中的所有复选框

您可以尝试以下方法:

$.vehicle.clickfunction{ 如果$'CustomSwitchs'.is':未选中{ 如果$。车辆:选中。长度>1{ 警告“您不能检查多个”; e、 防止违约; } } }; $customSwitches.clickfunction{ 美元。车辆。道具“已检查”,错误; }; 选择多个 我有一辆自行车 我有一辆车
我有一个建议,每个输入的周围和复选框都必须有值?标签不是必需的,我只是添加了它们,因为它们是很好的做法,使命中区域更大。这意味着你可以单击数字来选中框以及框本身。不过,复选框应该有值。尤其是当你将数据发送到服务器时。另外,如果在componentDidMount中使用上面的代码段,这会产生影响,因为它仍然不起作用。我从未使用React,因此我无法在这方面帮助你。如果你有什么理由觉得有必要用同样的逻辑添加另一个答案?@Rorymcrossan,可能逻辑是一样的,但实现是不同的。我在componentDidMount中有这段代码,它应该在哪里,因为它仍然不适用于我和你的代码片段?