Foros del Web » Programando para Internet » Javascript »

como integro 2 funciones en un solo onsubmit

Estas en el tema de como integro 2 funciones en un solo onsubmit en el foro de Javascript en Foros del Web. Saludos, no se si me hago entender, aun soy novato en esto pero tengo una funcion que valida campos de datos del usuario de un ...
  #1 (permalink)  
Antiguo 19/09/2012, 15:56
 
Fecha de Ingreso: octubre-2010
Ubicación: Guayaquil
Mensajes: 195
Antigüedad: 13 años, 6 meses
Puntos: 3
como integro 2 funciones en un solo onsubmit

Saludos, no se si me hago entender, aun soy novato en esto pero tengo una funcion que valida campos de datos del usuario de un formulario, se le da el submit si esta mal sale el correspondiente mensaje de error sino todo ok y se graban esos datos en mi b/d, pero quiero validar las extensiones de las fotos que suban los usuarios igual con un onsubmit en ese mismo programa antes de que se grabe en la b/d, he tratado de juntar las 2 funciones y no me funciona la de las fotos.

codigo de validacion de datos del usuario :

Código:
function validarForm(formulario) {
	if(formulario.usuario.value.length==0) { //¿Tiene 0 caracteres?
    formulario.usuario.focus();    // Damos el foco al control
    alert('No puedes dejar campos en blanco'); //Mostramos el mensaje
    return false; //devolvemos el foco
  }
  
  if(formulario.mail.value.length==0) { //¿Tiene 0 caracteres?
    formulario.mail.focus();    // Damos el foco al control
    alert('No puedes dejar campos en blanco'); //Mostramos el mensaje
    return false; //devolvemos el foco
  }
  
  if(formulario.contrasena.value.length==0) { //¿Tiene 0 caracteres?
    formulario.contrasena.focus();    // Damos el foco al control
    alert('No puedes dejar campos en blanco'); //Mostramos el mensaje
    return false; //devolvemos el foco
  }
  
  if(formulario.repcontrasena.value.length==0) { //¿Tiene 0 caracteres?
    formulario.repcontrasena.focus();    // Damos el foco al control
    alert('No puedes dejar campos en blanco'); //Mostramos el mensaje
    return false; //devolvemos el foco
  }
  
  if(formulario.contrasena.value!=formulario.repcontrasena.value) {
    formulario.contrasena.focus();            //comprueba que sean iguales
	alert('Las contraseñas no coinciden');
    return false;
  }
  


if ((formulario.mail.value.indexOf ('@', 0) == -1)||(formulario.mail.value.length < 5)) {
	 formulario.mail.focus(); 
    alert("Escriba una dirección de correo válida en el campo \"Dirección de correo\".");
    return (false);
  }
  
 if ((formulario.mail.value.indexOf ('.', 0) == -1)) {
	 formulario.mail.focus(); 
    alert("Escriba una dirección de correo válida en el campo \"Dirección de correo\".");
    return (false);
  }

value=e.value;
  
  return true; //Si ha llegado hasta aquí, es que todo es correcto

}
y el codigo de validacion de las fotos:

Código:
function validar(){
        var OK = true;
        var frm = document.forms["frm"];
        var f = frm.elements["archivo"];
        if( !f.value.match(/.(jpg)|(gif)|(png)|(jpeg)$/) ){
            document.getElementById("msg").innerHTML = "Extension debe ser jpg, jpeg, gif o png";
            OK = false;
        }
        return OK;
    }
y los envio a la pagina que los procesa asi:

Código HTML:
<form method="post" name= "frm" action="insertar.php"  enctype="multipart/form-data"   onsubmit="return validarForm(this); validar(); ">

E-mail
<br />


<INPUT TYPE= "TEXT" NAME="mail" /> 


<br />


Nombre de usuario 
<br /> 

<INPUT TYPE= "TEXT" NAME="usuario" /> 

<br />

Contraseña
<br />

<INPUT TYPE= "TEXT" NAME="contrasena" /> 

<br />


Repita Contraseña
<br />

<INPUT TYPE= "TEXT" NAME="repcontrasena" />

<br />
<br />

<SPAN STYLE="position:absolute; top:1220px; left:-600px;" > 
<input type="file" name="foto1" id="foto1" >
Foto Perfil
</SPAN>

<SPAN STYLE="position:absolute; top:1395px; left:-600px;" >                                                                                                   
<input type="submit"   value = "REGISTRAR PERFIL" >

</form>  

</SPAN> 
como ven me funciona la primera validacion pero la de las fotos no, y quisiera que funcionaran las 2 con un onsubmit, no se como integrarlas.
  #2 (permalink)  
Antiguo 19/09/2012, 16:00
Avatar de Dradi7  
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 15 años, 10 meses
Puntos: 220
Respuesta: como integro 2 funciones en un solo onsubmit

pero la funcion de las fotos porque no lo pones dentro de la funcion validarForm
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones
  #3 (permalink)  
Antiguo 20/09/2012, 11:03
 
Fecha de Ingreso: octubre-2010
Ubicación: Guayaquil
Mensajes: 195
Antigüedad: 13 años, 6 meses
Puntos: 3
Respuesta: como integro 2 funciones en un solo onsubmit

Justamente esa es una de las que he tratado de hacer, pero no se como.
  #4 (permalink)  
Antiguo 20/09/2012, 11:24
Avatar de Dradi7  
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 15 años, 10 meses
Puntos: 220
Respuesta: como integro 2 funciones en un solo onsubmit

pero sencillamente tienes que hacer esto despues de poner el


Código Javascript:
Ver original
  1. if ((formulario.mail.value.indexOf ('.', 0) == -1)) {
  2.      formulario.mail.focus();
  3.     alert("Escriba una dirección de correo válida en el campo \"Dirección de correo\".");
  4.     return (false);
  5.   }


agregale al final esto

Código Javascript:
Ver original
  1. if ((formulario.mail.value.indexOf ('.', 0) == -1)) {
  2.      formulario.mail.focus();
  3.     alert("Escriba una dirección de correo válida en el campo \"Dirección de correo\".");
  4.     return (false);
  5.   }
  6. if(!validar()){
  7.     alert("lo que sea");
  8.     return (false);
  9. }
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones
  #5 (permalink)  
Antiguo 20/09/2012, 12:13
 
Fecha de Ingreso: octubre-2010
Ubicación: Guayaquil
Mensajes: 195
Antigüedad: 13 años, 6 meses
Puntos: 3
Respuesta: como integro 2 funciones en un solo onsubmit

Lo hice asi como dices pero sige sin validar lo de las fotos:

Código:
if ((formulario.mail.value.indexOf ('.', 0) == -1)) {
	 formulario.mail.focus(); 
    alert("Escriba una dirección de correo válida en el campo \"Dirección de correo\".");
    return (false);
  }

if(!validar()){
	 var OK = true;
        var frm = document.forms["frm"];
        var f = frm.elements["foto1"].value;
        if( !f.value.match(/.(jpg)|(gif)|(png)|(jpeg)$/) ){
            alert= ("Extension debe ser jpg, jpeg, gif o png");
            return (false);
        
        
    }
    
}
  
  return true; //Si ha llegado hasta aquí, es que todo es correcto

}
habia un error, tuve que cambiar el campo archivo por foto1 pues no hacia referencia a ningun campo de mi formulario. aun asi no valida bien.
  #6 (permalink)  
Antiguo 20/09/2012, 14:38
Avatar de Dradi7  
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 15 años, 10 meses
Puntos: 220
Respuesta: como integro 2 funciones en un solo onsubmit

que has hecho??? si ya tienes el codigo de validar entonces para que nuevamente lo copias dentro del if eso esta mal tu solo haz que te devuelva un valor true o false y dependiendo de eso cancelas la primera validacion.
En otro caso cual es el error especifico que te da
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones

Etiquetas: formulario, funcion, funciones, html, input, onsubmit
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 14:27.