Foros del Web » Programando para Internet » Jquery »

[SOLUCIONADO] Ajax me envia 2 veces el mismo formulario

Estas en el tema de Ajax me envia 2 veces el mismo formulario en el foro de Jquery en Foros del Web. Buenas, tengo un formulario que lo envio con ajax. Todo muy basico, pero tengo algo mal porque cuando le doy al boton enviar me lo ...
  #1 (permalink)  
Antiguo 03/12/2014, 13:45
 
Fecha de Ingreso: noviembre-2007
Mensajes: 191
Antigüedad: 17 años
Puntos: 0
Ajax me envia 2 veces el mismo formulario

Buenas, tengo un formulario que lo envio con ajax. Todo muy basico, pero tengo algo mal porque cuando le doy al boton enviar me lo envia dos veces.
Es decir, es como si precionara dos veces seguidas al boton enviar, pero lo preciono solo una.
Aca el codigo:

Código HTML:
        <form action="script.php" method="get" id="formularioDeBusqueda">


			<input type="hidden" name="ultimoID" id="ultimoID" value="0" />
			<input type="hidden" name="borrarMarcadoresDelMapa" id="borrarMarcadoresDelMapa" value="1" />

			<label>Palabras:</label>
			<input type="text" name="palabrasABuscar" id="palabrasABuscar" value="{CAMPO-PALABRAS}" placeholder="nombre del lugar, rubro, etc..." />
            <!--           
			<label>Dirección:</label>
			<input type="text" name="direccionABuscar" id="direccionABuscar" value="{CAMPO-DIRECCION}" placeholder="calle y número"/>
				-->							
			<div align="center"><input type="submit" value="Buscalo y Encontralo" name="enviar" id="enviarFormularioDeBusqueda"  /></div>
                           
		</form>

		<script>
		$(document).ready(function() 
		{	
		    $('#formularioDeBusqueda').submit(function() 
			{
				//Muestro el mensaje de "cargando"...
				$('#cargandoFormularioDeBusqueda').css("display", "inline");
				
        		$.ajax({
            		type: 'GET', //Forma de envio del formulario...
            		url: $(this).attr('action'), //Esto es el action del formulario...
            		data: $(this).serialize(), //Lo puedo poner asi: data: 'accion.php',
            		success: function(data) 
					{
                		//El ID del div donde se carga el resultado del .php
//Aca use append para verificar que el formulario se enviaba dos veces...
						$('#mensajeDelSistemaAlBuscar').append(data);			
						
						//Borro el mensaje de "cargando"...
						$('#cargandoFormularioDeBusqueda').css("display", "none");	
						
						return false;				
					}
        		})		
				return false;
    		});		
		})  
	</script>  


  #2 (permalink)  
Antiguo 03/12/2014, 15:41
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: Ajax me envia 2 veces el mismo formulario

Prueba cancelando el envío con el método event.preventDefault en lugar de retornar false.

Código Javascript:
Ver original
  1. $("#formularioDeBusqueda").submit(function(event){
  2.     event.preventDefault(); //Cancelo el envío
  3.  
  4.     $.ajax({
  5.         url: $(this).prop("action"),
  6.         type: $(this).prop("method"),
  7.         data: $(this).serialize(),
  8.         beforeSend: function(){
  9.             $('#cargandoFormularioDeBusqueda').show();
  10.         },
  11.         success: function(data){
  12.             $("#cargandoFormularioDeBusqueda").hide();
  13.             $("#mensajeDelSistemaAlBuscar").append(data);
  14.         }
  15.     });
  16. });

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #3 (permalink)  
Antiguo 04/12/2014, 07:55
 
Fecha de Ingreso: noviembre-2007
Mensajes: 191
Antigüedad: 17 años
Puntos: 0
Respuesta: Ajax me envia 2 veces el mismo formulario

Buen dia! Gracias por la respuesta. Lamentablemente no funciona, sigue enviando doble el formulario.
El problema, lo tengo con la libreria JQUERYMOBILE, porque cuando la elimino ya no tengo ese problema. Envia el formulario una sola ves.

Que podra ser???
  #4 (permalink)  
Antiguo 04/12/2014, 11:54
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: Ajax me envia 2 veces el mismo formulario

Quizá, en alguna parte del resto de código que no nos muestras, está la clave.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #5 (permalink)  
Antiguo 04/12/2014, 11:59
 
Fecha de Ingreso: noviembre-2007
Mensajes: 191
Antigüedad: 17 años
Puntos: 0
Respuesta: Ajax me envia 2 veces el mismo formulario

Es que no hay mas codigo... Poque elimine todo y deje solo el formulario.
Segun lei por ahi, dicen que JqueryMobile viene por defecto activado el Ajax para los formularios, pero aunque lo desactivo poniendo data-ajax="false", sigo con el error.

Lo que sucede es que se envia el formulario dos veces, pero si quito la libreria Jquery mobile (dejando la libreria Jquery normal) esto no pasa y el formulario se envia una sola ves.
  #6 (permalink)  
Antiguo 04/12/2014, 13:27
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: Ajax me envia 2 veces el mismo formulario

Échale un ojo a esto.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #7 (permalink)  
Antiguo 07/12/2014, 19:17
Avatar de Djoaq  
Fecha de Ingreso: septiembre-2012
Ubicación: Barcelona
Mensajes: 271
Antigüedad: 12 años, 1 mes
Puntos: 38
Respuesta: Ajax me envia 2 veces el mismo formulario

Usa :
Tu evento click , submit,etc...Function(e){
e.preventDefault();
e.stopImmediatePropagation();

El resto de tu código....
}
  #8 (permalink)  
Antiguo 08/12/2014, 20:02
 
Fecha de Ingreso: noviembre-2007
Mensajes: 191
Antigüedad: 17 años
Puntos: 0
Respuesta: Ajax me envia 2 veces el mismo formulario

Funciona!!!!! Mil gracias a todos los que colaboraron, perdi una semana tratando de solucionar este error.
Gracias!!

Etiquetas: ajax, envia, formulario, veces
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:33.