代码片段 → jQuery 代码片段 → 当标签被点击时触发输入的点击事件 当标签被点击时触发输入的点击事件 Chris Coyier 于 2012 年 2 月 2 日 标签应该具有与它们标记的输入的 ID 相匹配的“for”属性。这意味着我们可以获取该属性并将其用于选择器,以触发对输入本身的点击。当然,假设你有一些原因需要观察对输入的点击。 var labelID; $('label').click(function() { labelID = $(this).attr('for'); $('#'+labelID).trigger('click'); });
不确定你是否是指这个,但 Safari 默认情况下就是这样。
除了 IE 之外的所有浏览器在以这种方式编码时都会这样做
<label><input id='my_input'/></label>
IE 需要这个
<label for='my_input'><input id='my_input'/></label>
很棒的人。你的评论比这篇文章好得多,也更有帮助。
重复 ID 错误 + 在 w3c 验证器中检查时出现警告。所以现在是时候使用 HTML5 标签了…
这种语法很有用,当然。但解耦
<label />
允许你做一些事情,比如是的,我真的不明白这段 jQuery 代码的意义。使用 LABEL 标签的“for”属性,所有浏览器都已内置了此功能。实际上是一篇无用的文章。
这对我很有效,特别是对于 Gravity Forms(或任何为你动态创建表单字段的内容)。不过有一个错误,$(‘#’+labelid).trigger(‘click’); 应该是 $(‘#’+labelID).trigger(‘click’);
谢谢
很棒的代码,正是我要找的。
这实际上修复了在表单标签中使用图像时的 IE 错误。
通常,标签的行为是当你点击它时,它对应的字段会获得焦点,不幸的是,IE 似乎在表单标签中使用图像时失去了这种功能。
谢谢
Paula
如果你在 iOS 上使用 FastClick(以避免 300 毫秒的点击延迟),这段代码实际上非常方便。
在罕见的情况下,如果你在单选按钮或复选框上方有一个标签,FastClick 会阻止标签选中输入。
没有 FastClick?没问题,不应该需要这个。
谢谢!
如果你有隐藏的单选按钮,并且使用标签来设置样式(并不罕见),那么这对移动设备来说是救星。谢谢。
确实!
太棒了。非常感谢。
为什么这很重要?因为该标签在 iOS 5 Safari(iPad 第 1 代的最大操作系统)中不可点击。由于这段代码,点击在 iOS 5 中与其他所有现代浏览器中的行为相同。
hahahaha
你好,
使用 Safari IOS5.1.1,我通过以下方式修复了它
是的…只是一个空的 onclick,哈哈
再见 ;)
(代码块错误…抱歉)
你好,
使用 Safari IOS5.1.1,我通过以下方式修复了它
是的…只是一个空的 onclick,哈哈
再见 ;)
谢谢!
我需要这段代码来使 Gravity 表单中的图像可点击,但它无法工作。我想知道是否还需要在 GF 的字段 ID 的自定义 CSS 类中输入代码?
“onclick”实际上会选择选项。不确定这段代码是否适用于这种情况。
替代方案
$(function() {
$(‘label’).click(function() {
var id = $(this).attr(‘for’);
$(‘#’+id).select();
});
});
查看这里:http://jsfiddle.net/sf3bgwxr/