2012-01-03 18 views
51

Estoy haciendo un formulario de registro para mi sitio web. Contiene varios campos de formulario estándar. Tales como: nombre, dirección, número de teléfono, nombre de usuario, contraseña, etc.Activación del llenado automático de formularios del navegador

Cuando hago doble clic en un campo (en Chrome 16), para poder completar automáticamente mi dirección, aparece este mensaje:

Esta página web ha deshabilitado el llenado automático de este formulario.

No lo deshabilité, entonces ¿cómo lo habilito? Traté de agregar autocomplete="on" a la etiqueta <form>, y a (algunas de) las etiquetas <input>, y eso no ayudó.

¿Debo agregar autocomplete="on" en todos los campos? Además, ¿cómo sabe el navegador qué campo es qué? ¿Debo nombrar los campos algo especial?

Otra pregunta: ¿Hay algún tipo de evento onautocomplete que se active cuando se rellena automáticamente un formulario? En mi formulario, cuando ingresa un código postal, se ve en nuestra base de datos (a través de AJAX) y luego obtiene el estado y la ciudad (ciudad y estado son listas desplegables, porque los códigos postales pueden ser para más de una ciudad) y los completa para ti. Esperaba poder correr después de que el formulario se llenara automáticamente.

P.S. Estoy usando el complemento jQuery form validation, si eso es importante.

+0

complemento autocompletar = "on" a la etiqueta

, eso es todo. Ahora borre su historial durante la última hora y actualice su página. Espero que eso pueda ayudar. Saludos –

+0

Si tiene una cuenta de Oracle, inicie sesión en el sitio, luego haga clic en Cuenta al lado de su nombre, esa página se ha completado automáticamente, que puede ver al ver su código fuente. Saludos –

+0

@GagandeepBali: Intenté eso, no me ayudó = (Agregué 'autocomplete =" on "' al '', abrí la página en modo incógnito de Chrome, y cuando traté de autocompletar el campo de dirección, obtuve el error en la pregunta. –

Respuesta

72

El problema era que la etiqueta del formulario no tenía method="POST" en él.

Después de buscar en Google el mensaje, encontré un bug report, y uno de los comments mencionados method="POST".

He añadido method="POST", y listo! Autocompletar funciona

En algunos casos, es posible que también deba agregar un action si el formulario no tiene uno. action="javascript:void(0)" funciona.

Nota: Autocompletar parece desencadenar el evento onchange.

Nota 2: En cuanto a la forma en que el navegador sabe qué campo es lo que, ver a esta pregunta: How to trigger Autofill in Google Chrome?

+0

También he agregado method = POST a mi formulario, pero el aviso todavía está allí ... Chrome 21 –

+0

@PeterO .: ¿Le diste un atributo 'action' también? –

+0

Sí, está allí. –

3

La opción para desactivar el autocompletado normalmente se encuentra en la etiqueta del formulario, consulte la página del desarrollador desde Mozilla here. Esto debería significar que normalmente eliminar ese atributo debería habilitarlo de nuevo en una página web.

En cuanto a la segunda parte con la solicitud AJAX, no creo que haya un oyente para eso, pero podría agregar una función que verifique el valor del campo cada x segundos, por ejemplo, y si cambia puede realizar tu búsqueda.

+0

Quiero activar autocompletar * en *, no apagado. –

+0

Lo hice un poco más claro. Quiere decir que si puede desactivarlo agregando ese atributo, debería poder habilitarlo eliminando el atributo. – canihavesomecoffee

+0

Eliminar el atributo 'autocompletar' (o la configuración' autocomplete = "on" ') no lo ha habilitado. Sigo recibiendo el mensaje "Esta página web ha desactivado el llenado automático de este formulario" en Chrome. –

Cuestiones relacionadas