【发布时间】:2015-08-11 14:28:41
【问题描述】:
我有两个inputs 类型为radio。对于每个input,都有一个对应的label,里面有一个button。
我希望单击按钮与单击标签具有相同的效果:检查相应的输入。
但是,这不会发生。如以下sn-p所示,悬停并按下按钮确实会触发单选按钮中相应的样式更改,但单击动作不会选择输入,即使简单标签按预期工作。
我检查了buttons 是labels 的合法子代。 Labels 允许 Phrasing Content,按钮是 Phrasing Content,所以那里应该一切正常。
我还尝试为两个按钮的单击事件添加一个事件侦听器,并在其中调用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>
【问题讨论】:
-
对我来说似乎没问题。
-
@Litestone:你用什么浏览器测试这个?
-
按钮不会提交表单,那么为什么要在按钮周围添加标签?
-
@Pete 否,由于
type="button"属性。我想要按钮来切换收音机,这样我就可以使用:checked选择器隐藏/显示元素。
标签: html