我有两个类型为
我期望点击按钮与点击标签具有相同的效果:相应的输入将被选中。
然而,这并没有发生。如下代码片段所示,悬停和按下按钮确实会触发单选按钮中相应的样式更改,但单击操作不会选择输入,尽管简单的标签可以正常使用。
我已检查过
我还尝试为两个按钮的点击事件添加事件侦听器,并在其中调用
radio
的input
。对于每个input
,都有一个相应的带有单个button
的label
。我期望点击按钮与点击标签具有相同的效果:相应的输入将被选中。
然而,这并没有发生。如下代码片段所示,悬停和按下按钮确实会触发单选按钮中相应的样式更改,但单击操作不会选择输入,尽管简单的标签可以正常使用。
我已检查过
button
是label
的合法子元素。 标签允许短语内容,而按钮是短语内容,因此一切都应该没问题。我还尝试为两个按钮的点击事件添加事件侦听器,并在其中调用
event.preventDefault()
,以确保按钮的默认行为不会阻止事件向上冒泡到标签中,但是无济于事,标签仍然收到了事件。由于这在各种浏览器中似乎都是一致的(在Firefox 41a和Opera 31b / Chrome 44上进行了测试),因此:
- 我错过了什么?
- 如何在没有诡计的情况下实现这一点(例如将标签样式设置为按钮)?
<div>
<input type="radio" name="A" id="one" />
<label for="one">One</label>
<label for="one">
<button type="button">One</button>
</label>
<input type="radio" name="A" id="two" />
<label for="two">Two</label>
<label for="two">
<button type="button">Two</button>
</label>
</div>
type="button"
属性。我想让按钮切换单选框,这样我就可以在后面使用:checked
选择器来隐藏/显示元素。 - Daniel