所以我有一个带有隐形单选按钮的手风琴。一切都很好,直到我试着获得单选按钮的状态。对于每个手风琴单选按钮,我有4行代码:
const ac1 = document.getElementById('ac-1');单选按钮包装在表单中:
<form class="ac-container">
<input id="ac-1" name="accordion-1" type="radio" checked="checked">
<input id="ac-2" name="accordion-1" type="radio">
<input id="ac-3" name="accordion-1" type="radio">
<input id="ac-4" name="accordion-1" type="radio">
</form>这是我的单选按钮CSS:
.ac-container input {
opacity: 0;
}要检查单选按钮的状态,我尝试了:
if (ac1.checked) {
//do something
}
if (document.getElementById('ac-1').checked) {
//do something
}我需要单选按钮状态,这样我就可以实时显示东西了。对于常规的点击,我只是使用addEventListener('click', (e) => {},它工作得很好,但我需要单选按钮也与键盘一起工作。这就是我需要状态的原因,所以如果选中单选按钮,我可以立即更新所需的内容。
我不确定这是否是问题所在,但是,当我单击单选按钮时,“选中”属性永远不会从一个按钮转移到另一个按钮?
如果我发现什么,我会继续寻找和更新。
发布于 2022-05-26 21:46:43
您可以监听input事件。
示例:
<input type="radio" name="value" id="inp">
<input type="radio" name="value" id="inp2">
<script>
const inp = document.getElementById("inp")
const inp2 = document.getElementById("inp2")
inp.addEventListener('input', (e) => {
console.log(inp.checked)
})
inp2.addEventListener('input', (e) => {
console.log(inp.checked)
})
</script>发布于 2022-05-26 22:26:50
从我上面的评论..。
“由于OP使用复选框和/或无线电控件,为什么OP需要一个基于JavaScript的解决方案?(几乎)一切都可以通过纯HTML/CSS实现。
[data-accordion] [type="radio"] + p,
[data-accordion] [type="checkbox"] + p {
height: 0;
overflow: hidden;
opacity: 0;
transition: opacity 2.5s ease-out;
}
[data-accordion] [type="radio"]:checked + p,
[data-accordion] [type="checkbox"]:checked + p {
height: auto;
opacity: 1;
}
h2 { margin: 0; font-size: 1em; }
p { margin: 0; }<article data-accordion>
<section>
<h2>Topic 4</h2>
<input type="radio" name="single-fold" />
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi nec lectus ante. Suspendisse sed tortor purus. Suspendisse potenti. Nunc pharetra odio id lorem pellentesque tincidunt.
</p>
</section>
<section>
<h2>Topic 5</h2>
<input type="radio" name="single-fold" />
<p>
Praesent ut ipsum efficitur, commodo lectus eu, maximus risus. Fusce eu ipsum mauris. Pellentesque semper neque a convallis consequat. Suspendisse eu urna quis est condimentum dapibus id ac lectus. Nulla sit amet hendrerit arcu.
</p>
</section>
<section>
<h2>Topic 6</h2>
<input type="radio" name="single-fold" />
<p>
Vestibulum vel sapien convallis diam iaculis consectetur non non ex. Suspendisse eget hendrerit ipsum. Suspendisse finibus quam eget est fringilla, finibus vehicula tortor varius. Praesent fermentum ac odio a ullamcorper.
</p>
</section>
</article>
<hr/>
<article data-accordion>
<section>
<h2>Topic 1</h2>
<input type="checkbox" />
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi nec lectus ante. Suspendisse sed tortor purus. Suspendisse potenti. Nunc pharetra odio id lorem pellentesque tincidunt.
</p>
</section>
<section>
<h2>Topic 5</h2>
<input type="checkbox" />
<p>
Praesent ut ipsum efficitur, commodo lectus eu, maximus risus. Fusce eu ipsum mauris. Pellentesque semper neque a convallis consequat. Suspendisse eu urna quis est condimentum dapibus id ac lectus. Nulla sit amet hendrerit arcu.
</p>
</section>
<section>
<h2>Topic 3</h2>
<input type="checkbox" />
<p>
Vestibulum vel sapien convallis diam iaculis consectetur non non ex. Suspendisse eget hendrerit ipsum. Suspendisse finibus quam eget est fringilla, finibus vehicula tortor varius. Praesent fermentum ac odio a ullamcorper.
</p>
</section>
</article>
https://stackoverflow.com/questions/72397670
复制相似问题