2009-10-26 12 views
21

Es realmente difícil buscar cualquier combinación de palabras clave en el motor de búsqueda acerca de esto, ya que utilizado por la mayoría de los desarrolladores populares quería una autocompletar personalizada por ajax.navegador de autocompletar/forma guardada no funciona en la solicitud de ajax

La mayoría de los desarrolladores busca la autocompletación personalizada para obtener el resultado de db a través de ajax o acerca de cómo deshabilitar la autocompletación del navegador por razones de seguridad o si quieren usar otro extensor de autocompletar.

Sin embargo, no estoy hablando de la función autocompletar. Me he encontrado con el autocompletado normal simple del navegador o el navegador guardado desde IE o FF que actuará como una opción reciente desplegable durante el llenado de un texto en un cuadro de texto.

Es simple y normal llenando un formulario como nombre de usuario y contraseña en un formulario de inicio de sesión. Después de que el formulario enviado (la entrada de datos del formulario) el navegador guardará la autocompleta o el evento en FF solicitará guardar junto con la contraseña.

Ahora, piense en el inicio de sesión enviado a través de ajax. Los datos del formulario no se guardan automáticamente por IE o FF simplemente porque el formulario no se envía por el método de publicación. Estoy bastante seguro de que es por el método ajax vs post.

CMS como DotNetNuke usando esto y es realmente difícil para mí escribir nombre de usuario y contraseña para 5 usuarios con fines de desarrollo, evento Quiero permitir al usuario guardar sus propios datos de formulario en el navegador sin ningún tipo de aduana o extensión. Por otro ejemplo, el usuario puede ver y usar el mismo correo electrónico para completar un formulario de correo electrónico en el sitio web o dominio.

¿Cómo solucionar este problema? ¿Tiene alguna sugerencia de qué palabras clave es más adecuada para buscar?

CallMeLaNN

+0

Im todavía en busca de la solución ... – CallMeLaNN

+0

le he pedido a la pregunta casi idéntica aquí: http://stackoverflow.com/questions/9201858/how-to-store-to-browser-auto- complete-auto-fill-when-using-ajax-calls-instead-of. Quiero una solución general, no una que simplemente funcione en FF. – JoeCool

+0

¿Has encontrado la respuesta? Estoy con el mismo problema. Cheers – Mango

Respuesta

4

estoy teniendo el mismo problema. Pude resolverlo para FireFox agregando un iframe oculto que envié a través de JavaScript antes de hacer mi publicación de AJAX. Todavía no he encontrado nada que funcione en Chrome/IE.

+0

Chrome 46 finalmente corrigió su comportamiento incorrecto. Consulte https://stackoverflow.com/a/33113374/810109 – mkurz

2

Me he enfrentado con el mismo problema y busqué un poco. Creo que la solución a continuación es la forma más conveniente de resolver esto si tiene una página de inicio de sesión. Si consideramos el inicio de sesión enviado a través de ajax, ninguno de los navegadores recuerda u ofrece la función autocomplatar para el nombre de usuario y el campo de contraseña, además, solicite recordar las credenciales. Pero si usa la función javascript submit (Probablemente no sea compatible con versiones anteriores de navegadores), todos los navegadores ofrecen guardar el nombre de usuario y la contraseña excepto IE. Pero he encontrado otro javascript complicado para IE para que ofrezca guardar el nombre de usuario y la contraseña.

En mi página de inicio de sesión, he manejado el nombre de usuario y la contraseña y los envío al servidor mediante solicitud ajax y si el inicio de sesión es exitoso, envié el formulario por el siguiente método. De lo contrario, se mostró un cuadro de alerta usuario que el inicio de sesión falló.

Por favor, marque el siguiente enlace:

[EDIT]: vínculo se rompe

Hay una página fija sobre este tema en la página del enlace, no puedo darle otro enlace, porque de mi reputacion Busque la cita a continuación en la página:

Consulte la página fija.

Por supuesto, este enfoque no se ajusta si tiene una sección de inicio de sesión en la página predeterminada debido al envío del formulario. Esto hace que la página parpadee. Me pregunto si alguien tiene una idea al respecto.

1

Aquí hay un código js jQuery discreto que enviará un formulario tanto a través de ajax (método $ .post) a un script de backend real y también a un script ficticio a través de un iFrame, por lo que el navegador guardará los datos enviados para su posterior autocompletado

Esto funciona muy bien en Chrome. ¡Cualquier comentario es más que bienvenido!

var formframesindex = 0; 
function onSubmitAjax(evt){ 
    var $form = $(this); 
    var framesubmitting = $form.hasClass('framesubmitting'); 
    var action = $form.attr('action'); 
    var original_action = action; 

    if(!framesubmitting){ 
     $.post(action,$form.serialize()+"&ajax=1", function(responseText,message,request){ 
      formResponseHandler(responseText); 
     }, "json"); 


     formframesindex++; 
     var formframe = $("<iframe name='formframe_id_"+(formframesindex)+"' id='formframe_id_"+(formframesindex)+"' class='formframe' src='/fakeformreceiver.php'></iframe>"); 
     $('body').append(formframe); 
     var target = $form.attr('target'); 
     $form.data('originaltarget',target); 
     $form.data('originalaction',original_action); 
     $form.attr('target','formframe_id_'+formframesindex); 
     $form.attr('action','/fakeformreceiver.php'); 
     $form.addClass('framesubmitting'); 
     $form.submit(); 

    } else { 
     var current_target = $form.attr('target'); 
     var original_action = $form.data('originalaction'); 
     var original_target = $form.data('originaltarget'); 
     var $frame = $('#'+current_target); 
     setTimeout(function(){ 
      if($frame && $frame.length){ 
       $frame.remove(); 
      } 
      $form.attr('action',original_action); 
      $form.attr('target',original_target); 
      $form.removeClass('framesubmitting'); 
     },100); 
    } 
    return framesubmitting; 
} 
+0

Chrome 46 corrigió su comportamiento incorrecto: ya no se necesitan soluciones 'iframe'. Ver https://stackoverflow.com/a/33113374/810109 – mkurz

Cuestiones relacionadas