【问题标题】:Is there an alternative to the autocomplete="off" attribute that’s valid XHTML Strict?是否存在有效 XHTML Strict 的 autocomplete="off" 属性的替代方法?
【发布时间】:2011-02-28 15:11:07
【问题描述】:

我有一个带有autocomplete='off' 输入字段的 XHTML 1.0 Strict 文档。 w3c 验证器告诉我,在严格的文档中您可能不会使用自动完成功能。那么有没有不改变文档类型的替代方案呢?

【问题讨论】:

标签: html autocomplete


【解决方案1】:

没有。 XHTML 1.0 无法告诉浏览器不要帮助用户填写表单域。

【讨论】:

  • ... 或者您可以停止告诉浏览器不要提供帮助。
  • @phpheini:出于兴趣,更改文档类型有什么问题?
  • @Paul D. Waite:我有点害怕改变它;)因为我不知道会发生什么,如果一切都搞砸了,所有的特殊字符都会被破坏。
  • @David Dorward:我不认为这是一个解决方案。我有一个带有 ajax 的搜索字段,它为用户提供了可能的搜索示例。如果没有 autocomplete='off',浏览器会在我的 ajax 建议之上显示他的建议,这样你就看不到它们了。
  • 顺便问一下:使用strict有什么好处吗?我可以想象 Google 喜欢更严格的网站,因为它们非常有效?
【解决方案2】:

您可以使用 javascript。编写一个小函数,通过将表单中的值设置为空字符串来清除表单中的所有输入字段。在页面加载时,调用该函数,但在大约一秒左右的 setTimeout 中调用它。如果浏览器已自动将值输入到字段中,则该值将被 javascript 擦除。唯一的问题是自动完成值在被替换之前可能会在字段中暂时可见。

【讨论】:

    【解决方案3】:

    你可以简单地使用 jquery 来解决这个问题

    //Try this one:
    
        $(document).ready(function(){
        $("input.autocompleteOff").attr("autocomplete","off");
        });
    
    //For all textbox -
    
        $(document).ready(function(){$("input").attr("autocomplete","off");});
    
    //HTML
    
    <input type="text" name="field" id="field" class="autocompleteOff" />
    

    【讨论】:

    • 在我看来,无效的 HTML 比经过验证后变得无效的 HTML 更好。我认为 OP 应该使用不同的文档类型或忽略验证器的建议
    • 浏览器在时间轴中的何处完成字段?这种方法只有在浏览器自动完成发生之后 dom 准备好时才有效 - 在所有具有此功能的浏览器中肯定都是这种情况吗?
    【解决方案4】:

    如何放置一个隐藏的假密码字段,例如

    <input type="password" name="stupid_autofill" id="stupid_autofill" value="" style="display:none;">
    

    在真实密码字段之前。这通常基于浏览器尝试在密码字段之前猜测输入字段。

    【讨论】:

      【解决方案5】:

      这个最新版本中的正确解决方案是放在输入端 autocomplete = 'false'.

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-09-02
        • 2011-01-27
        • 2010-12-28
        • 1970-01-01
        • 2011-04-21
        • 1970-01-01
        • 2020-01-22
        相关资源
        最近更新 更多