【问题标题】:Can't type within input because of webkit autofill由于 webkit 自动填充,无法在输入中输入
【发布时间】:2014-09-28 04:52:08
【问题描述】:

我已经到处搜索了这个问题的解决方案,我有一个登录表单,如果用户是第一次登录,但如果他们之前登录过并打开了自动完成功能,我可以在输入框内输入在输入字段中单击并编辑它们是不可能的。我在它们上面看到了“无法输入”光标符号。这只发生在 Chrome 中。

这不会在本地发生,仅在我的临时站点上发生,这也令人担忧,因为它们之间没有区别(就 html、css 和 js 文件而言)。

我已经尝试了各种我在这里找到的修复方法,例如将autocomplete="off" 添加到我的输入标签中。还尝试了一些 js,它是 XHTML 文档类型的解决方法:

if (document.getElementsByTagName) 
{
    var inputElements = document.getElementsByTagName('input');

    for (i=0; inputElements[i]; i++) 
    {
        if (inputElements[i].className && (inputElements[i].className.indexOf('disableAutoComplete') != -1)) 
        {
            inputElements[i].setAttribute('autocomplete','off');
        }
    }
}

还有这个

if ($.browser.webkit) 
{
    $('input[name="password"]').attr('autocomplete', 'off');
}

我最接近解决这个问题的是,如果我检查输入并将其位置更改为绝对/固定,它会破坏自动完成,然后如果我将位置更改回相对,我可以输入,但显然这并不是真正的解决方案它只是表明以某种方式自动填充/自动完成是问题所在。任何帮助将不胜感激。

【问题讨论】:

  • 你试过在表单上设置吗?
  • 刚刚试了一下,不开心:(
  • 耻辱......那我不知道。是一个疯狂的猜测:-)
  • 艾伦,请只对单行代码使用反引号。代码块使用四个空格。

标签: javascript css input autocomplete webkit


【解决方案1】:

我之前也遇到过同样的问题,肯定是 webkit 的自动填充功能造成的。通过删除整个表单并现在使用 javascript 序列化器作为表单处理器来解决。这比搞乱浏览器标准更容易。

【讨论】:

  • 还没有尝试过使用 javascript 序列化器,听起来很有趣,会研究一下
【解决方案2】:

最终解决这个问题的是在表单上设置相对位置并更改它的 z-index,

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-09-09
    • 2018-11-29
    • 2021-11-10
    • 2020-03-26
    • 1970-01-01
    • 1970-01-01
    • 2020-08-23
    • 1970-01-01
    相关资源
    最近更新 更多