标签内的按钮触发(有时是双触发\双击)

2023-12-08

有类似的问题,但我没有足够的声誉来发布答案,所以我将其作为“新问题”

问题是:

<label>
  <button type="button">something 1</button>
  <button type="button">something 2</button>
  <input>
</label>

如果您单击标签内的任何位置 - 它将触发第一个按钮,而不是第二个按钮,不会聚焦到输入

那是因为label触发它首先在其中找到的任何东西

所以如果你点击something 2按钮 - 您将点击两次:标签将触发第一个按钮,您(作为用户)将触发第二个按钮

这实际上很容易解决

<label for="unique">
  <button type="button">something 1</button>
  <button type="button">something 2</button>
  <input id="unique">
</label>

这样标签总是知道到底要触发什么


一般建议是“不要将交互元素(例如锚点或按钮)放置在标签内。”

在使用时for属性可能会解决单击标签时出现的部分问题,但它会带来其他问题。

// don’t put buttons in labels!
<label for="unique">
  <button type="button">something 1</button>
  <button type="button">something 2</button>
  <input id="unique">
</label>

The HTML 标准不允许在 HTML 中添加额外的交互元素<label>首先:

内容模型:
短语内容,但没有后代可标记元素(除非它是元素的标记控件),并且没有后代标签元素。

所以这在今天可能有效,但由于标准不支持它,浏览器供应商可以自由地改变行为。

HTML 元素表示用户界面中项目的标题。

主要的标签的目的是为输入提供可访问的文本,以便用户知道要输入什么,即使使用屏幕阅读器或语音控制等辅助技术也是如此。因此,标签的文本内容将用于标记输入,同时考虑所有包含的文本。其标题为“某物 1 某物 2”。

这不是很好,所以我的建议是不要依赖for属性来修复点击问题,而是将其分离并自己实现点击行为。

Using a <fieldset>也将具有将控件分组为辅助技术的优势,因此将宣布进入或离开焦点组。

focusInput = e => e.currentTarget.querySelector('input').focus();
action = e => {
  alert('Action!');
  e.stopPropagation();
}
<fieldset onclick="focusInput(event)">
  <legend>Group Title</legend>
  <button type="button" onclick="action(event)">something 1</button>
  <button type="button" onclick="action(event)">something 2</button>
  <br>
  <label>
    Input Label
    <input>
  </label>
</fieldset>

请注意,没有键盘处理程序绑定到字段集,因为这将再次让键盘用户感到困惑。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

标签内的按钮触发(有时是双触发\双击) 的相关文章

  • 当CSS文件存在时,无法在服务器上找到它们[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 当运行本地服务器时 这一切都运行良好 我有 header html 其中包含以下代码 在 public html 目录 与 header h
  • 向 Scala Swing Panel 添加标签时出现类型不匹配错误

    我有这个课程扩展FlowPanel我正在尝试向其中添加标签 import java awt Label Color import scala swing import scala util Random class MyPanel exte
  • 在 Chrome 中,应用于包含图像的锚点的轮廓高度不正确

    对于我正在开发的网站 我希望当链接聚焦 悬停 活动时 链接周围会出现虚线轮廓 我希望文本和图像链接发生这种情况 我遇到的问题是 虽然我的代码在 Firefox 和 IE 中运行良好 但在 Chrome 7 0 517 41 中 虚线轮廓与我
  • 如何在 HTML 中制作三角形?

    我想使用基本的 CSS 在 HTML 页面中制作三角形 我正在使用需要时间加载的三角形图片 因此 我想减少页面的加载时间 HTML 不可能 但 CSS 可以 例子 div class div
  • JSP - 如何从数据库呈现 html(或 jsp)代码

    我有一个由多个用户组使用的jsp 要求是每个用户组在访问页面时都希望有自定义的外观和感觉 带有区分参数 我们建议允许用户将他们需要的html转储到数据库表中 jsp将确定用户组并显示相应的html 有关如何做到这一点的任何指示 示例 如果用
  • 使用 Java 访问 HTML5 本地存储

    是否可以直接使用Java访问localstorage对象 如果是的话怎么办 更新 我知道 localstorage 是客户端 java 是服务器端 但我在网上读到 GWT 有 api 允许读取 localstorage 本地存储 顾名思义
  • 如何实现右边缘倾斜的 div? [复制]

    这个问题在这里已经有答案了 我几天来一直在寻找使 div 的右边缘倾斜 45 度的代码 这是我特别想要得到的图像示例 似乎有很多 倾斜边缘 div 的示例 但我找不到任何具有特定右侧倾斜的示例 我花了很多时间试图改变其他人的代码 但结果却一
  • 如何设置引导开关的 css 颜色?

    如何在此引导开关中将蓝色更改为另一种颜色 我尝试更改输入元素的颜色和背景颜色 但它没有更改开关颜色 这是 html 和 bootstraplink https getbootstrap com docs 4 2 components for
  • 使用jquery和css点击按钮后旋转div文本

    我想使用 jquery 和 css 单击按钮后旋转 div 文本 如果用户点击Rotate Left按钮 然后文本在左侧旋转 or用户点击Rotate Right按钮然后文本在右侧旋转 Example div Happy Birthday
  • 如何使用 jQuery 在弹出窗口中预览输入类型=“文件”中选定的图像? [复制]

    这个问题在这里已经有答案了 在我的代码中 我允许用户上传图像 现在我想在同一个弹出窗口中将所选图像显示为预览 我怎样才能使用 jQuery 做到这一点 以下是我在弹出窗口中使用的输入类型 HTML 代码
  • JQuery 可滚动文本

    我正在寻找一个 jquery 插件 它将在可滚动框中绑定文本 大多数滚动插件都会转换浏览器滚动条 但我想保持它的原样和可用 这只是为了在较小的空间内包含大量的文本 就像这样page http www class pm files jquer
  • canvas.getContext('2D') 返回空值

    我创建了一个画布并将其命名为getContext 方法 但它返回null为上下文 这是我使用的代码 我在控制台中得到了这个
  • 仅水平 CSS 视差效果,层数大于 100vw

    如何用水平引导网站仅 CSS 视差效果 要求 仅 CSS 视差 父层必须具有宽度 高度 100vw 100vh 子层的宽度 高度必须 gt 100vw 100vh child layers must visually align 100 w
  • AngularJS 输入字段未从控制器内的 setTimeout 更新

    我正在使用 AngularJS 支持的页面 并且我需要在只读输入文本字段内显示正在运行的时钟 与data ng model 为了模拟运行的时钟 我使用了 JavaScript 调度程序setTimeout每 1000 毫秒调用一个函数 该函
  • 如何检查元素的内容是否为空,如果是,则在 jquery 中删除该元素

    我目前正在尝试选择某个 div 内没有内容的任何 h2 元素并将其删除 这是我的 html 代码 div class skipToContainer h2 class vidSkipTo Hello h2 h2 class vidSkipT
  • 通过 jQuery 从输入类型=“文件”多个中删除文件

    我在使用 PHP 和 jQuery 上传文件时遇到问题 表单可以一次上传多个图像 这些图像可以在滑块中预览 表单还包含两个字段标题和描述 滑块通过 jQuery 工作 当用户通过单击选择文件来选择多个图像时
  • 显示班级图片 10 秒

    我有下面给出的代码显示9 boxes 其值如下digital time 还有一个班级box002显示digits相当于随机选择的九个盒子的值 box002 can be dragged to digital time starting wi
  • 文本后面有粗下划线

    如何使用 span 和 css 在文本 ABC 后面重现这种下划线 我已经能够做下划线below嵌套的文本span和彩色的border bottom 但无法获取behind图像和above文本基线 p style font size 48p
  • 使用 JavaScript onclick 添加表格行

    我正在尝试使用 javascript 添加下面找到的完全相同的元素 我已经尝试了这里找到的所有解决方案 我什至尝试用php echo但没有运气 无需更改任何输入名称或类似内容 只需单击该按钮即可向表中添加另一行 仅此而已 这是该元素 tr
  • CSS:缩放字体大小以适应父块元素的高度

    我发现的几乎每个问题和答案都谈到了视口大小 这确实不是我的问题 拿着这支笔 https codepen io njt1982 pen pZjZNM https codepen io njt1982 pen pZjZNM 我有一个非常基本的

随机推荐

  • PHP:如何从时区名称(例如:America/New_York)获取时区值(例如:东部标准时间)?

    是否有 PHP 函数可以在时区名称之间进行转换 例如此处找到的函数 http php net manual en timezones america php 和 值 例如东部标准时间或太平洋夏令时间 不想在区域之间进行转换 只需获取给定 A
  • 使用文本缩放 svg 以适合 viewBox

    很难知道文本需要什么尺寸 尤其是在旋转时 这样一来 很容易把viewBox弄得太小 然后文字就消失在viewBox之外了 然而 如果 viewBox 太大 那么就会有大量额外的空白区域也会被缩放 有没有办法缩放 viewBox 或 svg
  • PWA 离线模式无法从移动浏览器上的缓存加载

    我写了一个简单的 PWA 当前版本 基于本教程 by Vaadin 它运行良好 在 Chrome 中进行了测试 也在离线模式下进行了测试 在移动设备上使用它时 会出现问题 保存PWA后 启动一次 运行良好 然后关闭后 打开飞行模式并重新启动
  • jQuery Mobile 滑块更改事件

    我在监听 jQuery Mobile 滑块的更改事件时遇到困难 在该页面中 事件正确触发了事件 slidestop http jsfiddle net 2HEcY The same我页面中的代码不会触发任何内容 http www maria
  • 函数“execle”错误的隐式声明

    我不断得到 函数 execle 的隐式声明在 C99 中无效 编译下面的代码时 我缺少什么 include
  • 重新安装后的 Haskell 环境

    我最近重新安装了我的 Haskell 环境 因为我认为在将我的 Mac OS X 更新到 Mavericks 后 我已经无法恢复它了 现在每次我跑步cabal install cabal install 我收到以下错误 Resolving
  • 发送电子邮件到本地域

    我有一个从网站发送电子邮件的简单方法 local vars using var mail new MailMessage from sendTo using var smtp new SmtpClient mail CC Add cc ma
  • Lua中获取随机数的其他方法

    我正在寻找一种替代方法来在Lua中获取一个介于最小和最大数字之间的随机数 而不使用math random 有什么办法吗 它不一定是一个简单的方法 就像评论所暗示的那样 在类 Unix 系统上 您可以从中读取字节 dev random or
  • 如何转换 Oracle 中的“旧版”左外连接语句?

    我在 Oracle 数据库中有两个表 A 和 G 可以根据帐号将它们连接在一起 需要注意的是 其中一个表 G 的记录比另一个表少大约 80 条 当我一起查询两个表时 我需要获取所有行 以便我们在缺失的 80 行的列中看到 NULL 数据 我
  • 科尔多瓦中的文件大小函数

    也许这是一个简单的问题 但我已经搜索了两天 但找不到答案 我正在科尔多瓦开发一个文件管理器只是为了学习科尔多瓦插件文件 我使用此函数获得了文件夹中的文件列表 window resolveLocalFileSystemURL cordova
  • 量角器 - 无法读取未定义的属性“$$testability”

    我收到一条错误 内容如下 Error while waiting for Protractor to synce with the page Cannot read property testability of undefined 下面是
  • Scala - 用特定文本替换 xml 元素

    所以我有这个XML a blah a 我想把它改成 a someValueIDoNotKnowAtCompileTime a 目前 我正在看这个问题 然而 这只是将值更改为 2 我想要的是完全相同的东西 但是能够定义值 以便它可以在运行时更
  • 从主机名获取域名扩展

    Extract 域名扩展 e g com 不是使用正则表达式从主机名中获取的域名 例如 google com 输入 gt 输出 www google com gt com google com gt com google co uk gt
  • 在 AWS AppSync 中对 SQL 查询的 JSON 对象进行字符串化

    Question 如何在 Appsync 速度模板中对 SQL 语句的 JSON 对象进行字符串化 解释 我有一个 Aurora RDS 表 其中有一列数据类型为 JSON AppSync API 已连接到 RDS 我的 GraphQL 模
  • 将一个数据表的列添加到另一个数据表

    嘿 所有人都需要一点帮助来排序这个表的循环 似乎无法将工作示例应用于模型 无论如何 它就在这里 我有 2 个数据表 每个数据表都有不同的数据和不同的值 唯一的共同值是日期 第一个表包含我想要的所有内容 除了一列值 来自另一个表 因此我需要将
  • 在现有 geom_sf 图层下方插入 geom_sf 图层

    我有一张印度的基本地图 其中包含州和边界 一些标签以及存储为 gg 对象的许多其他规范 我想生成许多带有区域图层的地图 这些地图将承载来自不同变量的数据 为了防止地区地图覆盖州和国家边界 它必须位于之前所有代码之前 我想避免重复 我想我可以
  • 法律散文使用 Corda

    这是之前回答的后续问题法律散文乔尔提出的问题 根据要求创建了单独的问题 LegalProseReference uri foo bar com my legal doc html public class MyContract implem
  • 在 PHP 中,为什么我的会话变量保留为引用?

    这是代码 通过验证 IP 地址来检查会话 ID 是否被欺骗是一个简单的操作 session start session ip address SERVER REMOTE ADDR if isset SESSION SESSION IP AD
  • 如何更新表中的行或插入不存在的行?

    我有以下计数器表 CREATE TABLE cache key text PRIMARY KEY generation int 我想增加其中一个计数器 或者如果相应的行尚不存在 则将其设置为零 有没有办法在标准 SQL 中没有并发问题的情况
  • 标签内的按钮触发(有时是双触发\双击)

    有类似的问题 但我没有足够的声誉来发布答案 所以我将其作为 新问题 问题是