Html jQueryUI按钮集需要唯一的ID';s

Html jQueryUI按钮集需要唯一的ID';s,html,jquery-ui,jquery-plugins,button,label,Html,Jquery Ui,Jquery Plugins,Button,Label,如果使用jQueryUI创建收音机/复选框输入的按钮集,则必须使用显式标签。这意味着您必须按ID将标签与输入相关联 如果要在同一页面上使用多个相同的按钮集,这意味着您不能对每个按钮集使用相同的代码,因为ID在文档中必须是唯一的 大多数浏览器都会接受非唯一ID,但我不想被迫打破web标准,而且很明显,浏览器在未来将继续支持非唯一ID是没有保证的 我可以为每种情况生成唯一的ID,但这会使代码复杂化,并增加确保ID确实是唯一的问题 处理多个相同按钮集的最佳方法是什么 这表明了以下问题: 在我的特殊情况

如果使用jQueryUI创建收音机/复选框输入的按钮集,则必须使用显式标签。这意味着您必须按ID将
标签
输入
相关联

如果要在同一页面上使用多个相同的按钮集,这意味着您不能对每个按钮集使用相同的代码,因为ID在文档中必须是唯一的

大多数浏览器都会接受非唯一ID,但我不想被迫打破web标准,而且很明显,浏览器在未来将继续支持非唯一ID是没有保证的

我可以为每种情况生成唯一的ID,但这会使代码复杂化,并增加确保ID确实是唯一的问题

处理多个相同按钮集的最佳方法是什么

这表明了以下问题:


在我的特殊情况下,buttonset是由使用小部件工厂创建的插件生成的。我不知道这是否有助于解决此特定问题。

无论jQuery UI如何,出于可访问性原因,您都应该将所有输入的
id
属性与带有
for
属性的标签相匹配。当屏幕阅读器遇到输入字段时,它会使用此条件查找匹配的标签


我建议使用更具语义的方法来区分不同的集合,而不是生成唯一的标识符。这可能需要更多的工作,但它将是更标准、可访问和可维护的代码。

无论jQuery UI如何,出于可访问性的原因,您都应该将所有输入的
id
属性与带有
for
属性的标签相匹配。当屏幕阅读器遇到输入字段时,它会使用此条件查找匹配的标签


我建议使用更具语义的方法来区分不同的集合,而不是生成唯一的标识符。这可能需要更多的工作,但它将是更标准、更易访问、更易于维护的代码。

好吧,我愿意,但问题是:1。jQueryUI buttonset()需要使用ID。2.HTML规范要求ID是唯一的。如果你想在一个页面上多次使用一个按钮集,这两个似乎是不一致的。区分这些集合并不是问题的一部分,因为我直接引用DOM节点。您能否具体说明需要哪两个ID?我更新了你的Fiddle-,两个容器之间唯一不同的ID是4个单选按钮本身上的ID,这对于可访问的标记是必要的。是的,问题是单选按钮的HTML代码将在客户端生成,这使得创建唯一ID变得困难。不保证生成的ID不存在,除非执行相对昂贵的生成/检查是否存在循环。理想情况下,buttonset()不依赖ID。我同意在标签中使用无线电输入应该是可行的;这个-,有一个jQuery UI错误文档。我不相信生成唯一标识符会非常昂贵。乱七八糟的代码,是的,但是它不会很昂贵,除非你在DOM上有很多这样的东西。jQueryUI buttonset()需要使用ID。2.HTML规范要求ID是唯一的。如果你想在一个页面上多次使用一个按钮集,这两个似乎是不一致的。区分这些集合并不是问题的一部分,因为我直接引用DOM节点。您能否具体说明需要哪两个ID?我更新了你的Fiddle-,两个容器之间唯一不同的ID是4个单选按钮本身上的ID,这对于可访问的标记是必要的。是的,问题是单选按钮的HTML代码将在客户端生成,这使得创建唯一ID变得困难。不保证生成的ID不存在,除非执行相对昂贵的生成/检查是否存在循环。理想情况下,buttonset()不依赖ID。我同意在标签中使用无线电输入应该是可行的;这个-,有一个jQuery UI错误文档。我不相信生成唯一标识符会非常昂贵。乱七八糟的代码,是的,但它不会很昂贵,除非你在DOM上有很多这样的东西。