Foros del Web » Programando para Internet » Javascript »

ayuda validando una funcion

Estas en el tema de ayuda validando una funcion en el foro de Javascript en Foros del Web. buenas a todos, tengo un formulario, y quiero validar una serie de campos. hasta hoy ningun problema, tenia algo tal que asi: Código: ..... onSubmit="return ...
  #1 (permalink)  
Antiguo 15/09/2008, 09:07
 
Fecha de Ingreso: enero-2002
Mensajes: 1.872
Antigüedad: 22 años, 3 meses
Puntos: 3
ayuda validando una funcion

buenas a todos,

tengo un formulario, y quiero validar una serie de campos. hasta hoy ningun problema, tenia algo tal que asi:

Código:

..... onSubmit="return validar(this)"

if(frm.login.value=="")
{
alert("Falta introducir email");
frm.login.focus();
return false
}

...
y asi con todos los campos. hasta aqui todo bien. ahora queria añadir la opcion de comprobar el nif. he encontrado nun script hecho y bastante simple, pero claro, me hgace la comprobacion por separado. es decir, tengo algo tal en el textbox dni:

Código:
<input type="button" onClick="nif(formulario.dni.value);" value="Comprobar"/>

function nif(dni) {
  numero = dni.substr(0,dni.length-1);
  let = dni.substr(dni.length-1,1);
  numero = numero % 23;
  letra='TRWAGMYFPDXBNJZSQVHLCKET';
  letra=letra.substring(numero,numero+1);
  if (letra!=let) 
    alert('Dni erroneo');
  else
    alert('Dni correcto');
}
y funciona. pero cual es el problema? que solo me lo comprueba al hacer el onBlur, es decir, que si paso de el, ya no me lo comprueba. soy poco experto en javacsript, de que forma podria implementarlo en mi validar?

saludos
  #2 (permalink)  
Antiguo 15/09/2008, 09:47
 
Fecha de Ingreso: enero-2002
Mensajes: 1.872
Antigüedad: 22 años, 3 meses
Puntos: 3
Respuesta: ayuda validando una funcion

ninguna solucion?
  #3 (permalink)  
Antiguo 15/09/2008, 10:01
 
Fecha de Ingreso: enero-2008
Mensajes: 115
Antigüedad: 16 años, 3 meses
Puntos: 1
Respuesta: ayuda validando una funcion

podrías probar algo así quizás...
primero tu formulario que sea así por ejemplo:
Código HTML:
<form name="frm" action="tuarchivo.php" method="post" onsubmit="javascript:return validar();">
<input type="text" name="login" />
<input type="text" name="dni" />
<input type="submit" />
</form> 
y el script sería este:
Código PHP:
function validar()
{
   if(
frm.login.value=="")
   {
     
alert("Falta introducir email");
     
frm.login.focus();
     return 
false;
   }
   else if(!
nif()) return false;

  return 
true;
}

function 
nif() {
  var 
dni frm.dni.value;
  
numero dni.substr(0,dni.length-1);
  
let dni.substr(dni.length-1,1);
  
numero numero 23;
  
letra='TRWAGMYFPDXBNJZSQVHLCKET';
  
letra=letra.substring(numero,numero+1);
  if (
letra!=let)
  {
    
alert('Dni erroneo');
    
frm.dni.focus();
    return 
false;
  }
  return 
true;

pruebalo a ver.... no lo he probado realmente... espero que funcione...

salu2

Última edición por turbex; 15/09/2008 a las 10:17
  #4 (permalink)  
Antiguo 15/09/2008, 11:01
 
Fecha de Ingreso: enero-2002
Mensajes: 1.872
Antigüedad: 22 años, 3 meses
Puntos: 3
Respuesta: ayuda validando una funcion

lo he probado

el login si que me salta el error, pero luego me manda el form. no hace caso a la funcion del dni...

que esta mal?
  #5 (permalink)  
Antiguo 15/09/2008, 11:20
 
Fecha de Ingreso: enero-2008
Mensajes: 115
Antigüedad: 16 años, 3 meses
Puntos: 1
Respuesta: ayuda validando una funcion

pues yo lo probé aquí y si funciona... te pego el código de mi archivo:

Código HTML:
<form name="frm" action="tuarchivo.php" method="post" onsubmit="javascript:return validar();">
<input type="text" name="login" />
<input type="text" name="dni" />
<input type="submit" />
</form>

<script language="javascript" type="text/javascript">
function validar()
{
   if(frm.login.value=="")
   {
     alert("Falta introducir email");
     frm.login.focus();
     return false;
   }
   else if(!nif()) return false;

  return true;
}

function nif() {
  var dni = frm.dni.value;
  numero = dni.substr(0,dni.length-1);
  let = dni.substr(dni.length-1,1);
  numero = numero % 23;
  letra='TRWAGMYFPDXBNJZSQVHLCKET';
  letra=letra.substring(numero,numero+1);
  if (letra!=let)
  {
    alert('Dni erroneo');
    frm.dni.focus();
    return false;
  }
  return true;
}
</script> 
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:21.