Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 带有标签的按钮可能导致双重点火_Jquery_Html_Javascript Events - Fatal编程技术网

Jquery 带有标签的按钮可能导致双重点火

Jquery 带有标签的按钮可能导致双重点火,jquery,html,javascript-events,Jquery,Html,Javascript Events,我对按钮中的标签有问题,因为点击标签也会导致按钮点击触发 所以我接二连三地被解雇了,当然我不想这样 我的带有标签的按钮如下所示: <button id="b" name="Button" class="btn btn-primary btn-large"> <label id="b_button_label" class="fontf"> Click me </label> </button> 点击我 有没有什

我对按钮中的标签有问题,因为点击标签也会导致按钮点击触发

所以我接二连三地被解雇了,当然我不想这样

我的带有标签的按钮如下所示:

<button id="b" name="Button" class="btn btn-primary btn-large">
    <label id="b_button_label" class="fontf">
        Click me
    </label>
</button>

点击我

有没有什么快速的解决方案,也许是使用jquery,来防止双重触发?

是的,解决方案是不要在按钮内放置标签

标签是用来描述控件本身的,单击控件的标签就像单击控件本身一样

根据规范:

标签表示用户界面中的标题。标题可以与特定的表单控件(称为标签元素的标签控件)相关联,可以使用for属性,也可以通过将表单控件放入标签元素本身中来实现


我认为这不是一个有效的HTML代码。不能在按钮内添加标签。向按钮添加文本的简单方法是:


单击我

您可以在jQuery中使用stopPropagation事件来避免冒泡事件

$(function() {
    $('#b_button_label').on('click' , function(e) {
       e.stopPropagation();

       // Your code goes here
    });
});​

还有,当有值字段显示其文本时,为什么要在按钮内添加标签。

为什么要使用标签?如果要单独设置按钮内容的部分样式,可以使用span…+1,尽管HTML无效,但它确实解决了如何防止单击事件到达按钮的问题。当然,使用有效的HTML总是更好。@FrançoisWahl-为什么HTML无效<代码>元素肯定可以包含其他元素,但我找不到确切的允许元素列表(w3示例为
)。@nnnn:,我复制了代码,但失败了。默认情况下,它使用HTML4.01。它给出的理由是:
文档类型不允许在这里使用元素“标签”
,当使用XHTML1.0时,它说:
文档类型不允许在这里使用元素“标签”;缺少“object”、“p”、“h1”、“h2”、“h3”、“h4”、“h5”、“h6”、“div”、“pre”、“address”、“ins”、“del”、“span”、“bdo”、“tt”、“i”、“b”、“big”、“small”、“em”、“strong”、“dfn”、“code”、“q”、“samp”、“kbd”、“var”、“cite”、“abbr”、“首字母缩写”、“sub”、“sup”开始标记之一,谢谢@FrançoisWahl-我想这是
中允许的内容的列表,除非我在列表中没有看到“img”,而且你可以肯定地将
放在
中(根据)。当我尝试在按钮内使用该列表中的随机元素时,它返回为有效的HTML。我不知道我头顶上的有效HTML,这就是为什么我通常使用那个网站的原因。关于
img
标记,我只是在上面运行了验证器,它发现它在HTML4.01和XHTML1.0中是有效的。所以这个列表一定不完整。