Tras buscar por todo el foro, google y tal encontré varios ejemplos pero al final ninguno me ha funcionado o no he sabido utilizarlos.
Antes de nada, comentaros que estoy empezando en el mundo del JavaScript, así que perdonad si estoy un poco perdido o cometo fallos grotescos, y tras haber dicho esto os comento mi problema:
Me he creado una especie de plantilla para hacer la validacion de cualquier campo que podria encontrarme en un formulario, pero sobre todo con los que trabajaría, es decir, campos de texto, numéricos, de edad, telefonicos, email, dni botones de radio, select, etc. y hasta aquí bien, teniendo por ejemplo por separado las funciones de validar_texto(), validar_dni(), validar_email(), etc... sin embargo quiero meter todas estas funciones en una que se llame validar_todo() y luego llamar a esta última función desde el onsubmit de un formulario.
he probado llamar a esas funciones de la forma:
Código:
Pero me sale el mensaje de alert con los errores y se me acaba enviando el formulario con los campos vacios.function validar_todo(){ validar_texto(); validar_edad(); validar_telefono(); validar_email(); }
Cuando pruebo las funciones de texto, dni, etc por separado si me funcionam.
Y he aquí mi pregunta, ¿Como puedo hacer para que desde la funcion validar_todo me llame a las otras funciones y que en caso de que todas sean válidas me envie el formulario?
Muchisimas gracias, pero es que me estoy volviendo loco.
Por si os sirve de ayuda os indico lo que tengo:
Código:
Ah, y si quereis usar el código para tenerlo como ejemplo podeis usarlo.<script type="text/javascript"> function validar_todo(){ validar_texto(); validar_edad(); validar_telefono(); validar_numero(); validar_dni(); validar_sexo(); validar_select(); validar_cp(); validar_email(); validar_check(); } //hago validacion nombre function validar_texto(){ if(document.envio.nombre.value.length==0){ alert("Introduzca su nombre"); return false; } } //hago validacion edad function validar_edad(){ edad2= document.getElementById('edad').value; if (edad2==""){ alert("Por favor introduzca su edad.") return false; }else{ if (edad2<18){ alert("Debe ser mayor de 18 años.") return false; } } } //hago validacion telefono function validar_telefono(){ telefono2= document.getElementById('telefono').value; if (telefono2==""){ alert("Por favor introduzca un telefono.") return false; }else{ if( !(/^\d{9}$/.test(telefono2)) ) { alert("Introduzca un formato correcto de telefono"); return false; } } } //hago validacion campo numerico function validar_numero(){ numero2= document.getElementById('numero').value; if (numero2==""){ alert("Por favor introduzca un numero.") return false; }else{ if( isNaN(numero2) ) { alert("Por favor introduzca un numero correcto.") return false; } } } //hago validacion dni function validar_dni(){ dni2= document.getElementById('dni').value; var letras = ['T', 'R', 'W', 'A', 'G', 'M', 'Y', 'F', 'P', 'D', 'X', 'B', 'N', 'J', 'Z', 'S', 'Q', 'V', 'H', 'L', 'C', 'K', 'E', 'T']; if( !(/^\d{8}[A-Z]$/.test(dni2)) ) { alert("Por favor introduzca un dni correcto.") return false; } if(dni2.charAt(8) != letras[(dni2.substring(0, 8))%23]) { alert("Por favor introduzca una letra correcta.") return false; } } //hago validacion Radiobutton function validar_sexo(){ sexo2= document.getElementsByName('sexo'); var seleccionado = false; for(var i=0; i<sexo2.length; i++) { if(sexo2[i].checked) { seleccionado = true; break; } } if(!seleccionado) { alert("Por favor indiquenos su sexo.") return false; } } //hago validacion select function validar_select(){ opciones2= document.getElementById('opciones').selectedIndex; if(opciones2 == null || opciones2== 0 ) { alert("Por favor seleccione una opcion") return false; } } //hago validacion codigo postal(es igual que el del numero pero con el limite de 5 cifras en las caracteristicas del form function validar_cp(){ cp2= document.getElementById('cp').value; if (cp2==""){ alert("Por favor introduzca su codigo postal.") return false; }else{ if( !(/^\d{5}$/.test(cp2)) ) { alert("Introduzca un codigo postal correcto"); return false; } } } //hago validacion email function validar_email(){ if (document.envio.email.value==""){ alert("Por favor introduzca una direccion de email.") return false; }else{ if (document.envio.email.value.indexOf('@',0)==-1 || document.envio.email.value.indexOf('@',0)== 0 || document.envio.email.value.indexOf('.',0)==-1) { alert("Dirección de e-mail inválida"); return false; } } } //hago validacion checkbox function validar_check(){ elemento= document.getElementById('privacidad'); if (!elemento.checked){ alert("Por favor, acepte las condiciones de proteccion de datos.Gracias"); return false; } } </script>
Gracias de nuevo