Foros del Web » Programando para Internet » Javascript »

Funcion para validar formulario en Firefox no funciona

Estas en el tema de Funcion para validar formulario en Firefox no funciona en el foro de Javascript en Foros del Web. Tengo un formulario que se valida mediante una llamada a una funcion javascript a traves de onsubmit. Una vez validado, si devuelve un true se ...
  #1 (permalink)  
Antiguo 28/07/2014, 12:08
 
Fecha de Ingreso: agosto-2012
Ubicación: Almeria
Mensajes: 50
Antigüedad: 11 años, 7 meses
Puntos: 0
Funcion para validar formulario en Firefox no funciona

Tengo un formulario que se valida mediante una llamada a una funcion javascript a traves de onsubmit.
Una vez validado, si devuelve un true se insertan los datos en la BD a traves del action.

El tema es que todo esto funciona perfectamente en Google Chrome pero no se porque en Firefox directamente inserta en la BD sin hacer la comprobacion.

Os muestro el codigo del formulario.

<form enctype="multipart/form-data" method="POST" action="insertar_bd.php" name="formulario" class="formulario" onsubmit="return validarEvento('evento');">
  #2 (permalink)  
Antiguo 29/07/2014, 02:22
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 4 meses
Puntos: 61
Respuesta: Funcion para validar formulario en Firefox no funciona

Con los datos que das es muy dificil el ayudarte. Prueba a cambiar el botón de submit por un botón normal y darle la propiedad onclick con la llamada a la function de verificación. Luego, al final de dicha function por el form.submit()

Pero es un tiro a ciegas. Si no das más datos es imposible ayudarte.

Un saludo!
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #3 (permalink)  
Antiguo 29/07/2014, 10:42
 
Fecha de Ingreso: agosto-2012
Ubicación: Almeria
Mensajes: 50
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: Funcion para validar formulario en Firefox no funciona

Pensaba que era problema de alguna opcion del form que no servia en Firefox.
Os pongo mas codigo:

Código:
<form enctype="multipart/form-data" method="POST" action="insertar_bd.php" name="formulario" class="formulario" onsubmit="return validarEvento('evento');">

<?php
        if($tipo == "eventos")
       	{?>
.
.Varios campos del formulario
.
<div class="error" id="error" style="width:600px">

</div>

<div class="error" id="error" style="width:600px">

		</div>
        <div id="loadingFiesta" style='display:none;'> <div style='text-align:center;padding-bottom: 2px;color:grey;font-weight:bold;'> Subiendo imágenes al servidor, espere un momento</div> <div style='text-align:center;'> <img src='img/diseno/generales/loading2.gif' alt='loading' style='margin-top:2px;text-align:center;' /></div></div>
        <input type="hidden" value="eventos" id="tipo" name="tipo" />
        <input type="submit" value="Enviar" id="bEvento" class="button"  />

        <?php
	}
    else{

    }?>

    <?php
    //Por si venimos de un error
    if(isset($_POST['error']))
                echo "<br/><br/><p style='color:brown'> $error; </p>";

            ?>
        </form>
La funcion de validarEvento es esta:
Código:
function validarEvento(tipo)
{
    var valido = true;
    var error = "";

    if(tipo != 'fotos')
    {
        if(document.formulario.titulo.value ==  '')
        {
            error = error + "* Error, introduzca el nombre o descripción del evento <br/>";
            valido =  false;
        }


	    //validar fecha
	    var f = new Date()
	    var año = f.getFullYear();
	    var mes = f.getMonth()+1;
	    var dia = f.getDate();
	    if(document.formulario.dia.value == '0' || document.formulario.año.value == '0' || document.formulario.mes.value == '0')
	    {
	        error = error + "* Error, introduzca una fecha correcta. <br/>";
	        valido =  false;
	    }
	    else if(tipo == 'evento')
	    {
	        var aux = document.formulario;
	        aceptado = true;
	        if(aux.año.value > año)
	            aceptado = false;
	        else if(aux.año.value == año)
	        {
	            if(aux.mes.value > mes)
	                aceptado = false;
	            else if(aux.mes.value == mes)
	            {
	                if(aux.dia.value > dia)
	                    aceptado = false;
	            }
	        }
	        if(aceptado == false)
	        {
	            error = error + "* Fecha errónea. Si quiere insertar un evento futuro vaya a la sección de Próximos Eventos, en caso contrario introduzca una fecha anterior  a la actual.. <br/>";
	            valido =  false;
	        }
	    }
	    else
	    {
	        var aux = document.formulario;
	        aceptado = true;
	        if(aux.año.value < año)
	            aceptado = false;
	        else if(aux.año.value == año)
	        {
	            if(aux.mes.value < mes)
	                aceptado = false;
	            else if(aux.mes.value == mes)
	            {
	                if(aux.dia.value < dia)
	                    aceptado = false;
	            }
	        }
	        if(aceptado == false)
	        {
	            error = error + "* Error, la fecha introducida ya ha pasado. <br/>";
	            valido =  false;
	        }
	    }
	}


    if(document.formulario.imagen.value == '')
    {
        error = error + "* Error, debe introducir alguna imagen <br/>";
        valido =  false;
    }




    if(document.getElementById("tipo2") != 'prox' && document.getElementById("lbl_imagen2") != null)
    {
        //Verifica si hay 2 imagenes con el mismo nombre
        if(document.getElementById("lbl_imagen2").style.display == "block"  && document.getElementById("imagen2").value != "")
        {
            var tam = 2;
             for(tam = 2; document.getElementById("lbl_imagen"+tam).style.display == "block" && document.getElementById("imagen"+tam).value != "";tam++);


            if(document.formulario.imagen.value == document.getElementById("imagen2").value)
            {
                error = error + "* Error al insertar imágenes, hay 2  con el mismo nombre <br/>";
                valido =  false;
                flag = true;
            }
            else
            {
                var flag = false;
                for(i=2;i<tam && flag == false;i++)
                {
                    if(document.formulario.imagen.value == document.getElementById("imagen"+i).value)
                    {
                        error = error + "* Error al insertar imágenes, hay 2 con el mismo nombre <br/>";
                        valido =  false;
                        flag = true;
                    }
                    for(j=i+1;j<=tam && flag == false;j++)
                    {


                        if(document.formulario.imagen.value == document.getElementById("imagen"+j).value)
                        {
                            error = error + "* Error al insertar imágenes, hay 2  con el mismo nombre <br/>";
                            valido =  false;
                            flag = true
                        }
                        else if(document.getElementById("imagen"+i).value == document.getElementById("imagen"+j).value)
                        {
                            error = error + "* Error al insertar imágenes, hay 2 con el mismo nombre <br/>";
                            valido =  false;
                            flag = true
                        }
                    }
                }
            }
        }
    }

Etiquetas: firefox, formulario, funcion, php
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 10:30.