对于IE9和IE10中的属性执行方式不同。当我点击标签时,它也是IE中的签到复选框,但在其他浏览器中它不会。 fiddle
// JS
<script type="text/javascript">
function show(){
alert(0);
}
</script>
// HTML
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><input type="checkbox" id="test" /></td>
<td><label for="test"><a href="javascript:show()">click</a></label></td>
</tr>
</table>
答案 0 :(得分:1)
标签元素的确切默认表示和行为 特别是它的激活行为可能是什么,如果有的话,应该 匹配平台的标签行为。一个人的激活行为 针对交互式内容后代的事件的标签元素 标签元素以及这些交互式内容的任何后代 后代,必须无所事事。
例如,在单击复选框标签的平台上检查 复选框,单击以下代码段中的标签可能会触发 用户代理在输入上运行合成点击激活步骤 元素,就好像元素本身已被用户触发:
[......剪切代码示例...]
在其他平台上,行为可能只是集中控件,或者做 什么都没有。
规格似乎留下了很大的自由,尽管基本上,他们说点击标签,如果浏览器真的有做某事,那么它应该做通常发生的事情目前的平台。
例如,如果我没记错的话,在Windows中单击标签时(在Wdinows表单中),复选框也会收到点击,这就是在Windows中运行的浏览器中应该发生的事情。
同样,由于有很多自由,几乎每个浏览器都会按照自己喜欢的方式行事。
如果问题(不是很清楚)是如何避免这种行为,你可能需要使用jquery或javascript以某种方式解决它。在IE10中进行第一次快速测试后,这似乎有效:
<label for="test">
<a href="#" onclick="show(); return false;">jitender</a>
</label>
答案 1 :(得分:0)
做了一些改变,继承人fiddle 通过
删除了标签中的链接<label for="test" onclick="javascript:show()"> jitender</label>