提问人:martini_dog 提问时间:8/2/2023 最后编辑:martini_dog 更新时间:8/2/2023 访问量:51
Javascript 输入“check”——为什么第二个“checked”会覆盖第一个?
Javascript input 'check' - why is the second 'checked' overwriting the first?
问:
我有一个简单的问题,我希望有人能为我解决。
我有一些 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 “检查”主题的顺序如何,都会检查这两个输入。
答:
3赞
César Venzac
8/2/2023
#1
从我在您的代码片段中看到的内容:这种情况可能会发生,因为您正在使用而不是 .input[type="radio"]
input[type="checkbox"]
同时只能选择给定组中的一个单选按钮。
查看 MDN Web 文档
您应该考虑使用复选框而不是无线电输入。
祝你今天开心!
评论
0赞
martini_dog
8/2/2023
啊,是的,这将是 100% 的。我认为我需要做的是将它们保留为无线电输入(它们需要),但更改其中一个的名称,以便它们不在同一个组中,以便它们都可以选择。感谢您的帮助!
评论
:radio
用于单选按钮。这是一个特定的 UX,一次只允许选择一个(在组内)。考虑一下 - 您只想选择“是”或“否”,而不是同时选择两者。收音机和复选框之间的另一个区别是您不能“取消选中”收音机。如果您希望两者都可选,请不要使用收音机。或者,确保它们位于不同的无线电组中。没有 HTML,就不可能说出你的意图。(o) Yes ( ) No