什么会导致Chrome自动填充停止工作?

时间:2011-08-30 19:10:25

标签: html5 google-chrome

我有一个使用HTML5的新网站。一切都有效,除了LESS样式表和Facebook标签。但是,Chrome无法正常自动填充。如果我在名字字段中键入'chr',我会在其下方输入标准的自动填充,但突出显示,单击或以其他方式选择自动填充选项并不能完成表单。自动填充下拉列表只是消失了。

我猜我的HTML中有些内容会让自动填充代码混乱,但我似乎无法在网上找到有关Chrome自动填充实施的信息以及无法使用时要查找的内容。

编辑:我知道Autofill工作正常,因为它适用于其他网站,甚至是我们开发的其他网站。它必须是这个网站上的HTML特有的东西。

6 个答案:

答案 0 :(得分:15)

如果以异步方式提交表单,Chrome将无法保存密码或自动填充数据。例如,如果您提交以下表单,Chrome会提示您保存密码:

<form action="/signin">
    <input type="text" name="email" />
    <input type="password" name="password" />
    <button type="submit">Sign In</button>
</form>

但是,如果绑定到submit事件并覆盖默认行为,则不会出现提示,并且不会保存自动填充数据:

$(function(){
    $('form').submit(function(e){
        e.preventDefault();
        $.post($(this).attr('action'), $(this).serialize());
    });
});

在20.0中测试

答案 1 :(得分:7)

Chrome似乎只支持使用POST方法自动填充表单。这可能是最新版本的安全更新。

如果您这样做,自动填充功能将起作用:

<form id="myForm" action="?go" method="post">

如果您省略该方法或将其设置为get:

,则无效

<form id="myForm" action="?go" method="get">

<form id="myForm" action="?go">

答案 2 :(得分:3)

我在HTML中知道阻止它的唯一方法是在输入上设置:autocomplete =“off”。

我知道有时使用自动填充功能会导致下拉不起作用,但不会出现文本框。

答案 3 :(得分:2)

我刚刚对这个问题进行了一段时间的讨论,我发现了一个“名字”属性 像“email-2”这样的破折号会导致Chrome无法自动填写该字段。 在我的情况下,我已将其更改为email2,现在它可以工作。 它只影响“name”属性,而“id”属性没有任何区别。

我希望这可以帮助别人节省时间这么愚蠢的错误。

来自阿根廷的问候!

答案 4 :(得分:0)

很抱歉,我无法给你一个明确的答案,但我会从页面中删除除输入字段之外的所有内容。如果它工作,那么我将开始“二进制搜索” - 删除一半的原始布局,看看它是否有效,如果不是 - 删除剩下的一半,依此类推,直到找到问题行。

同样可以应用于css,js等。这是一种非常有效的搜索错误的方法(对于1024行代码,您只需10步即可找到确切的问题行。)

答案 5 :(得分:-1)

只有那些需要自动填充的元素应该在表单内部。否则自动填充不会工作。只在表单下面的那些文本框。如果你已经有涉及其他元素的表单,将它们分开并在文本框周围放置新的表单标签需要自动填充,其中没有其他内容。