Javascript 输入“check”——为什么第二个“checked”会覆盖第一个?

Javascript input 'check' - why is the second 'checked' overwriting the first?

提问人:martini_dog 提问时间:8/2/2023 最后编辑:martini_dog 更新时间:8/2/2023 访问量:51

问:

我有一个简单的问题,我希望有人能为我解决。

我有一些 Javascript 负责一个接一个地检查两个单独的输入。但是,似乎只能检查其中一个输入。

无论我在 Javascript 中首先放置哪个输入的“检查”都会被忽略或覆盖,我不知道为什么。仅检查第二个输入。

var radioButtonSticky = stickyATC.find('.swatch[data-option-index="' + i + '"] :radio[value="' + variant.options[i] +'"]');

var radioButtonMobileSticky = mobileStickyAtc.find('.swatch-dropdown__sliding-option-selector-outer-container[data-option-index="' + i + '"] :radio[value="' + variant.options[i] +'"]');

radioButtonSticky.get(0).checked = true;
radioButtonMobileSticky.get(0).checked = true;      

在上面的示例中,仅检查“radioButtonMobileSticky”输入。 但是,如果我切换了此代码最后两行的顺序,则只会检查“radioButtonSticky”输入。

我还没有看到任何关于为什么会在网上发生这种情况的答案,我快疯了!任何帮助表示赞赏!

我希望无论 JavaScript/JQuery “检查”主题的顺序如何,都会检查这两个输入。

JavaScript jQuery 表单 输入 复选框

评论

0赞 freedomn-m 8/2/2023
:radio用于单选按钮。这是一个特定的 UX,一次只允许选择一个(在组内)。考虑一下 - 您只想选择“是”或“否”,而不是同时选择两者。收音机和复选框之间的另一个区别是您不能“取消选中”收音机。如果您希望两者都可选,请不要使用收音机。或者,确保它们位于不同的无线电组中。没有 HTML,就不可能说出你的意图。(o) Yes ( ) No

答:

3赞 César Venzac 8/2/2023 #1

从我在您的代码片段中看到的内容:这种情况可能会发生,因为您正在使用而不是 .input[type="radio"]input[type="checkbox"]

同时只能选择给定组中的一个单选按钮。
查看 MDN Web 文档

您应该考虑使用复选框而不是无线电输入。

祝你今天开心!

评论

0赞 martini_dog 8/2/2023
啊,是的,这将是 100% 的。我认为我需要做的是将它们保留为无线电输入(它们需要),但更改其中一个的名称,以便它们不在同一个组中,以便它们都可以选择。感谢您的帮助!