2011-08-30 86 views
11

我有一个使用HTML5的新网站。除了LESS样式表和Facebook标签之外,所有的事情都可以验证。但是,Chrome无法正确自动填充。如果我在名字字段中输入'chr',我会在其下面选择标准的自动填充下拉菜单,但突出显示,单击或选择自动填充选项不会完成表格。自动填充下拉菜单仅会消失。什么会导致Chrome自动填充停止工作?

我猜我的HTML中有一些令人困惑的自动填充代码,但我似乎无法在网络上找到关于Chrome自动填充实施的任何信息,以及在无法使用时寻找的东西。

编辑:我知道Autofill工作正常,因为它适用于其他网站,甚至是我们开发的其他网站。它必须是本网站上HTML的特定内容。

+0

请提供一些HTML + JS代码示例。我有一个预感,你有一些防止表单提交行为的js代码,假设你首先使用了FORM标签。 – Kayhadrin

+0

这是您的问题的一个潜在的解决方案:http://stackoverflow.com/questions/16445463/how-to-get-chrome-to-autofill-with-asynchronous-post/22191041#22191041 – Kayhadrin

回答

6

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

如果你做自动填充将工作:

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

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

+0

这对我有效,谢谢。 –

3

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

我知道下拉式按钮有时无法使用自动填充功能,但不能使用文本框。

+0

是的,我没有使用。 – Chris

0

对不起,我不能给你一个明确的答案,但我会开始删除除了输入字段之外的所有内容。如果有效,那么我会开始“二分查找” - 删除原始布局的一半,看看是否有效,如果不行 - 删除剩下的一半等等,直到发现问题行。

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

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

+0

考虑到已保存的用户数据已经存在,并且应该在提交之前提交填写表单,这完全不相干。 – Chris

+0

我知道这是一年之后。我遇到这个问题是因为我异步提交表单。几小时前我做了[这个问题](http://stackoverflow.com/questions/16445463/how-to-get-chrome-to-autofill-with-asynchronous-post)。我想知道你是否对这是否是解决此问题的好方法有意见。它似乎在Chrome中工作。 – 1252748

+0

嗨克里斯托弗,我通过'$('form')。submit()'提交表单,我想自动完成工作。然而,自动完成只适用于,如果表单通过提交按钮'button type =“submit”'提交,任何想法模拟按钮提交,以便Chrome自动完成?谢谢 – basZero

2

我刚才fighted这个问题了一会儿,我发现了一个“名”与 属性破折号像“电子邮件2”会导致Chrome不能au完成该领域。 在我的情况下,我已将其更改为email2,现在它可以正常工作。 它只影响“name”属性,而“id”属性没有任何区别。

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

来自阿根廷的问候!

-1

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

如果省略该方法或将它设置为获取它不会工作只有那些需要自动填充的元素应该存在于表单内部,另外还有自动填充填充不会work.if只有那些文本框下form.if你已经有形式涉及其他元素,将它们分开,并将新的形式标签周围的文本框需要自动填充,没有其他内部。

+1

这并不是许多形式的自动完成我在许多网站上发现的情况,在那里我只自动完成表格的一部分 – gbalduzzi

相关问题