【问题标题】:Typeahead placing span tag after my label tag for my search. How can I add a label properly?Typeahead 在我的标签标签之后放置跨度标签以进行搜索。如何正确添加标签?
【发布时间】:2015-11-24 21:15:20
【问题描述】:

我们的网站必须符合 ADA。他们寻找的一件事是每个表单都必须有一个标签标签。该代码在正确的位置有一个标签标签,但是当 javascript 在页面上加载时,标签和搜索字段之间会出现一个跨度标签,使其不再兼容。我没有看到添加标签的方法。我很好奇是否有其他人对此有建议,或者是否有替代预输入的方法可行?为了符合要求,它必须看起来像

<label for="search">Search: </label>
<input type="text" name="search" id="search"/>

例如,它现在的工作方式看起来像......

<label for="search">Search: </label>
<span class="twitter-typeahead">
    <input type="text" name="search" id="search"/>
</span>

【问题讨论】:

  • 你为什么不使用“for”属性?
  • 对于属性?在哪里?标签有一个 for 属性
  • 标签必须在 for 属性中具有输入的 id,而不是名称
  • 抱歉,刚刚检查了我的代码。我有 id 作为搜索。表单的 id 是 Bloodhound。已编辑
  • 标签是否有for属性,为什么需要在元素旁边?似乎是一个糟糕的验证,因为任何屏幕阅读器都可以处理带有链接它的适当属性的标签。

标签: javascript jquery html typeahead.js


【解决方案1】:

没有选项可以更改包装您的输入的span 标签。您可以在源代码here 中看到它的硬编码位置。不幸的是,typeahead 也不再维护,因此将来不会有自定义选项。

但是,您始终可以自己修改代码。在我链接到的 www.js 文件中(如果您自己编译)或在包中,找到 buildHtml() 函数并将该行更改为空字符串。

function buildHtml(c) {
    return {
      wrapper: '',
      menu: '<div class="' + c.menu + '"></div>'
    };
}

我不知道这是否会对预先输入的其他地方产生未知的影响,但我只是在一个页面上尝试过,一切似乎都运行良好。

【讨论】:

    猜你喜欢
    • 2012-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-28
    相关资源
    最近更新 更多