formulario - enviar varias variables por ajax
la forma autocompletada/guardada del navegador no funciona en la solicitud ajax (3)
Es realmente difícil buscar cualquier combinación de palabras clave en el motor de búsqueda porque la mayoría de los desarrolladores populares querían un autocompletado personalizado por ajax.
La mayoría de los desarrolladores buscan el autocompletado personalizado para obtener el resultado de db a través de ajax o sobre cómo desactivar el autocompletar del navegador por razones de seguridad o si quieren utilizar otro extensor de autocompletar.
Sin embargo, no estoy hablando de la autocompleta. 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 llenar 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.
A CMS le gusta usar DotNetNuke de esta manera y me resulta realmente difícil escribir el nombre de usuario y la contraseña para el inicio de sesión de 5 usuarios con fines de desarrollo, evento en el que quiero permitir que el usuario guarde sus propios datos en el navegador sin ningún tipo de personalización 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 esto? ¿Le sugirieron qué palabras clave es más adecuada para buscar?
CallMeLaNN
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.
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 se ha realizado correctamente, envié el formulario por el siguiente método. De lo contrario, se mostró un cuadro de alerta al usuario fue fallido
Por favor, consulte el siguiente enlace:
[EDIT]: el enlace está roto
Hay una página fija sobre este tema en la página vinculada, no puedo darle otro enlace debido a mi reputación. Busque la cita a continuación en la página:
Mira 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.
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 back-end 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;
}