Foros del Web » Programando para Internet » Jquery »

[SOLUCIONADO] Formulario desaparece al enviar datos

Estas en el tema de Formulario desaparece al enviar datos en el foro de Jquery en Foros del Web. Hola a todos. Tengo un formulario que funciona perfectamente, aparecen los mensajes de error si no se introducen datos y se envían los datos correctamente. ...
  #1 (permalink)  
Antiguo 23/11/2015, 14:28
 
Fecha de Ingreso: febrero-2009
Mensajes: 10
Antigüedad: 15 años, 10 meses
Puntos: 1
Formulario desaparece al enviar datos

Hola a todos.
Tengo un formulario que funciona perfectamente, aparecen los mensajes de error si no se introducen datos y se envían los datos correctamente.
El problema está en que justo después de enviar los datos, mediante el botón submit correspondiente, la caja que contiene los campos del formulario desaparece, y el formulario deja de estar visible.
He buscado en el css y no hay ninguna línea que haga desaparecer el formulario, por lo que no sé si puede ser problema del código jquery que utilizo para la validación y envío de datos.
Este es el código:

Código:
jQuery(document).ready(function($){

	// hide messages 
	$("#error").hide();
	$("#sent-form-msg").hide();
	
	// on submit...
	$("#contactForm #submit").click(function() {
		$("#error").hide();
		
		//required:
		
		//name
		var name = $("input#name").val();
		if(name.trim() == ""){
			$("#error").fadeIn().text("Por favor introduce tu nombre");
			$("input#name").focus();
			return false;
		}
		
		//formato email
		var email = $("input#email").val();
		var regex = /[\w-\.]{2,}@([\w-]{2,}\.)*([\w-]{2,}\.)[\w-]{2,4}/;
		if (!regex.test($("#email").val().trim())) {
			$("#error").fadeIn().text("Email no introducido o incorrecto");
			$("input#email").focus();
			return false;
		}
		
		// asunto
		var asunto = $("input#asunto").val();
		if(asunto.trim() == ""){
			$("#error").fadeIn().text("Por favor introduce el asunto de tu mensaje");
			$("input#asunto").focus();
			return false;
		}

		// comments
		var comments = $("#comments").val();
		if(comments == ""){
			$("#error").fadeIn().text("Por favor introduce un mensaje");
			$("#comments").focus();
			return false;
		}
		
		//condiciones
		if (!document.getElementById('chkAcepto').checked) {
		$("#error").fadeIn().text("Por favor acepta los términos y condiciones");
	 document.getElementById('chkAcepto').focus();
       return false; 
		}
		
		
		// send mail php
		var sendMailUrl = $("#sendMailUrl").val();
		
		//to, from & subject
		var to = $("#to").val();
		var from = $("#from").val();
		var subject = $("#subject").val();
		
		// data string
		var dataString = 'name=' + name
						+ '&email=' + email        
						+ '&asunto=' + asunto
						+ '&comments=' + comments
						+ '&to=' + to
						+ '&from=' + from
						+ '&subject=' + subject;						         
		// ajax
		$.ajax({
			type:"POST",
			url: sendMailUrl,
			data: dataString,
			success: success()
		});
	});  
		
		
	// on success...
	 function success(){
	 	$("#sent-form-msg").fadeIn();
	 	$("#contactForm").fadeOut();
	 }
	
    return false;
});
Al visualizar el código html una vez que ha sido enviado el formulario veo que a la caja que contiene todos los campos se le asigna un "style: display=none", que es el culpable de que desaparezca. El problema es que no sé que está provocando la asignación de este estilo.

Última edición por inad84; 23/11/2015 a las 14:31 Razón: Adicción de información
  #2 (permalink)  
Antiguo 23/11/2015, 15:07
 
Fecha de Ingreso: febrero-2009
Mensajes: 10
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: Formulario desaparece al enviar datos

Ya he encontrado la solución.
El problema estaba en la línea:
Código:
$("#contactForm").fadeOut();
Que hace desaparecer la caja con id: contactForm.
Era más fácil de lo que parecía.

Etiquetas: desaparece, formulario
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 09:00.