2011-08-30 9 views
11

Tengo un nuevo sitio en el que estamos trabajando que usa HTML5. Todo valida excepto las hojas de estilo LESS y las etiquetas de Facebook. Sin embargo, Chrome no se autocompletará correctamente. Si escribo 'chr' en el campo del primer nombre, obtengo el menú desplegable Autofill estándar debajo de él, pero resaltar, hacer clic o seleccionar la opción de autocompletar no completa el formulario como debería. El menú desplegable Autocompletar simplemente desaparece.¿Qué causaría que Autocompletar de Chrome deje de funcionar?

Supongo que hay algo en mi código HTML que está confundiendo el código de autocompletar, pero parece que no puedo encontrar ninguna información en la web sobre la implementación de autocompletar de Chrome y qué cosas buscar cuando no funciona.

Editar: Sé que Autofill funciona correctamente porque funciona en otros sitios, incluso en otros sitios que hemos desarrollado. Tiene que ser algo específico del HTML en este sitio.

+0

Por favor proporcione un ejemplo de código HTML + JS. Tengo la corazonada de que tienes algún código js que impide la acción de envío de formularios, suponiendo que estás usando una etiqueta FORM en primer lugar. – Kayhadrin

+0

Aquí hay una posible solución para su problema: http://stackoverflow.com/questions/16445463/how-to-get-chrome-to-autofill-with-asynchronous-post/22191041#22191041 – Kayhadrin

Respuesta

6

Parece que Chrome solo habilita el autocompletado para formularios con un método POST. Esto puede haber sido una actualización de seguridad en una versión reciente.

Llenado automático funcionará si lo hace:

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

no va a funcionar si se omite el método o que está establecido para obtener:

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

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

+0

Esto funcionó para mí, gracias. –

3

La única manera que conozco en HTML para bloquearlo es establecer: autocomplete = "off" en las entradas.

Sé que las listas desplegables no funcionan a veces con el autocompletar, pero no en los cuadros de texto.

+0

Sí, no estoy usando eso . – Chris

0

Lo siento, no puedo darle una respuesta definitiva, pero yo comenzaría con la eliminación de todo de la página, excepto ese campo de entrada. Si funciona, comenzaría la "búsqueda binaria", eliminaría la mitad del diseño original y vería si funciona, si no lo está, eliminará la mitad de lo que queda y así sucesivamente hasta que se encuentre la línea del problema.

Igual podría aplicarse a css, js, etc. Es una forma bastante efectiva de buscar errores (para 1024 líneas de código, encontrará la línea de problema exacta en solo 10 pasos).

15

Chrome no guardará la contraseña ni los datos de autocompletar si se envía un formulario de forma asíncrona. Por ejemplo, si envía el siguiente formulario, Chrome le pedirá que guardar la contraseña:

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

Sin embargo, si enlaza al evento submit y anular el comportamiento por defecto, no habrá ningún mensaje y los datos de autocompletar no se guardarán:

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

Probado en 20,0

+0

Todo eso es bastante irrelevante teniendo en cuenta que los datos de usuario guardados ya existen y debería haber estado ofreciendo completar el formulario antes de enviarlo. – Chris

+0

Sé que esto es un año después. Estaba teniendo este problema porque envié mi formulario de forma asíncrona. Hice [esta pregunta] (http://stackoverflow.com/questions/16445463/how-to-get-chrome-to-autofill-with-asynchronous-post) hace unas horas. Me pregunto si tenía una opinión sobre si este es un buen método para evitar este comportamiento. Parece funcionar en Chrome. – 1252748

+0

Hola Christopher, estoy enviando mis formularios a través de '$ ('form'). Submit()' y QUIERO que se complete automáticamente. Sin embargo, la función de autocompletar solo funciona, si el formulario se envía mediante el botón de envío 'button type =" submit "', ¿hay alguna idea que simule el envío del botón para que Chrome se autocomplete? gracias – basZero

2

acabo de fighted con este tema por un tiempo, descubrí que un atributo "name" con un guión como "email-2" causaría que Chrome no aumente para completar el campo En mi caso lo he cambiado a email2 y ahora funciona. Solo afecta al atributo "nombre", mientras que el atributo "id" no hace ninguna diferencia.

Espero que esto ayude a alguien a ahorrar tiempo con un error tan tonto.

Saludos desde Argentina!

-1

Solo aquellos elementos que requieren autocompletar deben estar dentro del formulario. De lo contrario, el auto el relleno no funcionará. Solo incluya esos cuadros de texto en un formulario. Si ya tiene un formulario que involucre otros elementos, sepárelos y coloque una nueva etiqueta de formulario alrededor de los cuadros de texto que requieren el autocompletar y nada más dentro de él.

+1

Este no es el caso de muchos formularios con autocompletar que encontré en muchos sitios web, donde autocompletar solo una parte del formulario – gbalduzzi

Cuestiones relacionadas