2017-02-19 66 views
0

我有一个锚定标记缠绕在无线电输入上。当我点击它们时,单选按钮会被检查,但锚标记不会执行任何操作。锚点标记点击事件正在触发,但默认不是

<a href="https://stackoverflow.com"> 
    <input type="radio" /> 
</a> 

我尝试添加一个onclick处理到锚标记,以查看是否被点击它和它的工作如预期:

<a onclick="console.log('anchor clicked');" href="https://stackoverflow.com"> 
    <input type="radio" /> 
</a> 

这也让我明白了正被点击的锚标记,以便两次我添加event.stopPropagation到输入标记:

<a onclick="console.log('anchor clicked');" href="https://stackoverflow.com"> 
    <input onclick="event.stopPropagation();" type="radio" /> 
</a> 

回答

2

这是无效的html5。根据the speca元素的内容模型声明它不能将交互式内容作为后代。非隐藏的input是交互式内容。

+0

我在css中将它设置为'none'。 – epiqueras

+0

@epiqueras阅读链接。一个非隐藏的'input'是'type = hidden' –

+0

正确的答案,但我认为你的意思是“一个非隐藏的输入”是*除*'type = hidden'之外的任何东西“ –