标签内部奇怪的输入按钮onClick处理程序行为

时间:2010-07-30 05:06:13

标签: javascript html xhtml

<!DOCTYPE HTML PUBLIC "-//WC3/DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html>
<body>
<label>A label
<input type="button" value="First" onClick="alert('First');" />
<input type="button" value="Second" onClick="alert('Second');" />
</label>
</body>
</html>

在Firefox 3.6.8中尝试了这段代码。当我点击“第一个”时,它会显示“第一个”。当我点击“秒”时,它显示“第二个,然后是”第一个“?由于内联标签(标签)中的块级标签(输入),这是一个奇怪的onClick行为吗?

2 个答案:

答案 0 :(得分:1)

是的,它发生在很多浏览器中(以及我所安装的所有浏览器),并且它发生在span标签(也是内联的)。

如果这是表格,则应为:

<label for="First">First</label>
<input type="button" value="First" id="First" onclick="alert('First');" />
<label for="Second">Second</label>
<input type="button" value="Second" id="Second" onclick="alert('First');" />

如果没有,请尝试使用span标签?

答案 1 :(得分:0)

您的按钮嵌套在单个label元素中。当您点击第二个button时,Firefox会激活label,然后激活第一个button。你应按照@jamie-wilson的建议划分你的label