Ver Mensaje Individual
  #5 (permalink)  
Antiguo 09/01/2008, 16:35
forosdelwebdr
 
Fecha de Ingreso: enero-2008
Mensajes: 21
Antigüedad: 17 años
Puntos: 1
Re: Validación dni en formulario

Cita:
Iniciado por EnCeRiO Ver Mensaje
Muchas gracias por tu respuesta forosdelwebdr

Si soy español, yo lo llamo dni, nif, carnet, lo primero que me viene a la cabeza jejeje

Lo he probado y no me funciona, le doy a enviar pero no hace nada ¿?, donde dices que debo poner las barras invertidas?

Ahora lo he dejado así:


Saludos
Código HTML:
<html>
<body>
<script> 
function valida_envia(){ 
	//valido el dni 
	var dni = document.form.dni.value;
	if (!dni || !/[0-9]+/.test(dni)) {
                       alert((dni) ? 
		"DNI incorrecto" : 
		"Debe introducir su DNI");
                       return false;
                }
	var found = new Array(); 
	//delante de los punto va una barra invertida contraria a / el problema es que este foro elimina las barras 
	found = dni.match(/([0-9]{1,2})\.?([0-9]{3})\.?([0-9]{3})/);
	// si sería 3 significa que el número es menor a 1.000.000.. estan todos fiambres 
	//disculpa olvide el match completo son 4 los resultados  
	if (found.length == 4) {
		found.splice(0,1);
		document.form.dni.value=found.join();
		return true; 
	} else { 
		alert("Número de DNI incorrecto"); 
		document.form.dni.focus() 
		return false; 
	} 
} 
</script>
<form name=form>
<input type=text name=dni>
<input type=button onclick="alert(valida_envia() ? 'Devolvio true': 'Devolvio false')" >
</form>
</body>
</html> 
Chequea esto recuerda que comprueba DNI hasta 99.999.999 con o sin puntos, si quieres que complete con puntos debes poner en la funcion join() esto join(".")

Las barras invertidas van donde las pusiste

Espero que sirva.

Saludos

Última edición por forosdelwebdr; 09/01/2008 a las 16:41