18910140161

JavaScript-如果其中一个复选框未选中,则禁用按钮-堆栈溢出

顺晟科技

2022-10-19 12:59:36

90

在调用和中有两个复选框,并创建了一个名为

的按钮

如果这些复选框中的一个未选中,我希望保持禁用。

问题是它一开始就禁用了该按钮,但如果我同时检查了这两个按钮,它就不会启用该按钮。

注意:即使添加到代码中,也不能解决问题

如何仅在选中两个复选框的情况下启用按钮?

编辑:我忘了提到我有很多复选框和按钮。如果解决方案仅用一个按钮影响这两个复选框,而不影响其余的复选框和按钮,那将是理想的选择。


顺晟科技:

必须触发复选框。

简单地选中两个复选框是否选中,只能在加载文档时工作。每次更改复选框状态时,都必须重复此过程。

我稍微修改了您的脚本。

逻辑

  • 选择所有复选框。
  • 通过使用以下命令循环此列表,在复选框上添加更改事件。
  • 在更改事件中,查找所选复选框的计数。
  • 如果与总计长度复选框匹配,请启用或禁用该按钮。

编辑:

如果只想选择这两个复选框,可以用多种方法来处理。您可以使用具有某些唯一值的自定义属性。在下面的示例中,我使用并使用。这将检查所有具有having值的输入元素。

我使用这种方法的原因是使您的解决方案更加通用。您只需在所有要包含此检查的输入中使用。

工作小提琴

如果您仍然想通过使用id选择仅使用2个元素,则可以使用id选择它们。喜欢并将更改事件绑定到它们。在change事件中,检查在change函数中是否同时检查了两者。

工作小提琴

如果我理解你是正确的,你希望按钮只有在两个复选框都被选中时才启用,对吗?如果是这样的话,您可以尝试以下方法:

HTML

我还添加了该按钮,因此它从一开始就被禁用。

以下是一个工作示例的代码:https://codepen.io/jonas_weinhardt/pen/qwgogzl?editors=1010

编辑:

您可能应该使用Nitheesh答案,因为它是一种更简单、更通用的方法!

尝试以下代码,更简单易读(希望如此)。

编辑#2:我根据注释中的要求更新了答案,使其涵盖必需可选复选框。

编辑:刚刚注意到它仍然可以通过键盘选项卡焦点访问并触发事件。所以这不是一个完美的解决方案,请注意。

这可以通过普通CSS完成:

试试这个,

我将值“disabled”添加到button并创建两个onclick方法以获取.checked状态,如果两者都为true,则将button参数“disabled=true”更改为“disabled=false”

  • TAG:
相关文章
我们已经准备好了,你呢?
2024我们与您携手共赢,为您的企业形象保驾护航