array 过滤器在 javascript 中 onchange 后不起作用

问题描述 投票:0回答:1

我有一个单组复选框,使用切换它应该相应地显示复选框。

Disabled -- all checkboxes should be unchecked
Default -- all checkboxes should be checked and disabled
Enabled -- all checkboxes should be checked.

例如,从 Disabled 中,如果用户选择 2 和 3 disabled.

来自 num = [0, 1, 2, 3] 的数组 过滤后, includedDigits = num.filter(e=> !DigitsFromOnchange.includes(e)); // 结果应该是

0, 1

启用也一样,

例如,从 Enabled 中,如果用户选择 2 和 3 Enabled.

来自 num = [0, 1, 2, 3] 的数组 过滤后, includedDigits = num.filter(e=> DigitsFromOnchange.includes(e)); // 结果应该是

2, 3

默认情况下,它的 数 = [0, 1, 2, 3]

这是我的codepen

我不确定onchange事件是否正确执行。

arrayFilter
,在 onchange 之后如何工作? 有人可以帮忙吗? 非常感谢。

javascript
1个回答
0
投票

就像下面的 SO answer 说的那样,当使用 JavaScript 选中/取消选中框时,您需要手动触发

change
事件。

https://stackoverflow.com/a/41981606/129127

在您的情况下,您只需要在 JavaScript 中添加一行:

function handleCheckUncheck(value)
  document.querySelectorAll("input[type='checkbox']").forEach(function (val) {
    val.checked = value;
    val.dispatchEvent(new Event("change")); // <-- Add this line
    // etc.
© www.soinside.com 2019 - 2024. All rights reserved.