2009-12-01 14 views
5

Quiero que la función Autocompletar formulario de Safari funcione en los formularios en mi aplicación web. Todos nuestros eventos de envío se impiden y en su lugar enviamos datos al servidor a través de XHR (Ajax) POST.Force Safari formulario Autocompletar entrada al usar JavaScript para evitar el envío del formulario

El problema es, por defecto de Safari para crear una nueva entrada en Es Autocompletar (autocompletar) "base de datos" requiere caso de presentar la forma de disparar y burbuja todo el camino hacia arriba. De mi prueba, esto es lo que concluí y trabajo para los métodos de formulario GET y POST.

Este problema es no presente en Firefox; todos nuestros formularios conservan los valores anteriores que fueron "enviados" para cada campo. Este es el comportamiento deseado que queremos en Safari.

En nuestra aplicación, un usuario completará el mismo formulario varias veces en varias sesiones. En algunos casos, sería útil que el navegador se autocompletara (Autocompletar en el caso de Safari) estos campos para el usuario en función de sus valores enviados anteriormente.

Me preguntaba si alguien más se ha encontrado con este problema con Safari. Y mejor aún si tienen una solución (incluso si es específica de Safari) para decirle (u obligar) a Safari a guardar los valores del campo de formulario en su base de datos de Autocompletar, incluso si se evita el evento de envío del formulario.

He intentado prevenirDefault() por orden ascendente en el DOM, permitiendo que el evento enviado se active hasta el nodo DOM principal del formulario; no hay diferencia en el comportamiento. Es posible que esto sea solo un error en Safari ...

+0

Tengo el mismo problema tanto en Safari como en Chrome (lo cual no es sorprendente). No puedo encontrar una respuesta ¿Has encontrado una solución desde el año pasado? –

+0

Jean, no he :-(y este comportamiento es muy molesto. –

+0

¿Alguna actualización sobre este problema? – mkurz

Respuesta

0

Para un formulario que usa HTTPS, este es el comportamiento esperado de Safari, que está en contra de los estándares W3C.

La única forma de evitar esto es incluir una imagen, o una etiqueta similar, que apunte a un recurso HTTP. Por supuesto, perderá su candado y su página se verá como insegura.

Cuestiones relacionadas