Foros del Web » Programando para Internet » Javascript »

Añadir validar NIF a esta funcion

Estas en el tema de Añadir validar NIF a esta funcion en el foro de Javascript en Foros del Web. Hola a todos, tengo esta función, para validar datos antes de enviar un formulario. No se mucho de javascript y me estoy liando, es sencillo ...
  #1 (permalink)  
Antiguo 17/10/2012, 11:14
Avatar de TheScript  
Fecha de Ingreso: septiembre-2011
Ubicación: Spain
Mensajes: 164
Antigüedad: 12 años, 7 meses
Puntos: 30
Añadir validar NIF a esta funcion

Hola a todos, tengo esta función, para validar datos antes de enviar un formulario. No se mucho de javascript y me estoy liando, es sencillo pero tengo muchas dudas.

En mi formulario tengo un select option, para seleccionar si el tipo de documento que se va a introducir es un nif, un dni o un pasaporte.

Y no se como meter la comprobacion dentro de mi funcion. Tampoco se como validar un dni en condiciones, ya que tengo una funcion (la voy a poner mas abajo, pero no me funciona bien)

Espero me podais ayudar.

Código HTML:
function Registrar()
{
	if (document.frmdatos.nombre.value=='')
	{
		alert('Debe de escribir su nombre');
		document.frmdatos.nombre.focus();
		return;
	}
	
	if (document.frmdatos.primer_apellido.value=='')
	{
		alert('Debe de escribir sus apellidos');
		document.frmdatos.primer_apellido.focus();
		return;
	}
	
	if (document.frmdatos.segundo_apellido.value=='')
	{
		alert('Debe de escribir sus apellidos');
		document.frmdatos.segundo_apellido.focus();
		return;
	}
	if (document.frmdatos.documento.value=='')
	{
		alert('Debe de escribir su DNI');
		document.frmdatos.documento.focus();
		return;
	}
	if (document.frmdatos.documento.value<='')
	{
		alert('Debe de escribir su DNI');
		document.frmdatos.documento.focus();
		return;
	}
	

	if (document.frmdatos.nombre_via.value=='')
	{
		alert('Debe de escribir su domicilio');
		document.frmdatos.nombre_via.focus();
		return;
	}

	if (document.frmdatos.localidad.value=='')
	{
		alert('Debe de escribir su localidad');
		document.frmdatos.localidad.focus();
		return;
	}

	if (document.frmdatos.municipio.value=='')
	{
	alert('Debe de escribir su municipio');
	document.frmdatos.municipio.focus();
	return;
	}

	if (document.frmdatos.cp.value=='')
	{
	alert('Debe de escribir su codigo postal');
	document.frmdatos.cp.focus();
	return;
	}

	if (document.frmdatos.telefono1.value=='')
	{
	alert('Debe de escribir su telefono');
	document.frmdatos.telefono1.focus();
	return;
	}

	if (document.frmdatos.email.value=='')
	{
	alert('Debe de escribir su email');
	document.frmdatos.email.focus();
	return;
	}

	if (document.frmdatos.nss.value=='')
	{
	alert('Debe de escribir su nº seguridad social');
	document.frmdatos.nss.focus();
	return;
	}


	
	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');
}
	if (confirm('Estas seguro de solicitar su inscripción') == true)
	{
		document.frmdatos.txtok.value="ADD";
		document.frmdatos.submit();	
	}	
}	


Los demas datos me funcionan pero el validar DNI, al cambiar de 'input', me salta el error, pero al mandar el formulario, me deja mandarlo haya lo que haya puesto en el input....

Cualquier aporte sea cual sea me vale, estoy un poco en blanco. Un saludo amigos, y gracias.
  #2 (permalink)  
Antiguo 17/10/2012, 11:42
Avatar de TheScript  
Fecha de Ingreso: septiembre-2011
Ubicación: Spain
Mensajes: 164
Antigüedad: 12 años, 7 meses
Puntos: 30
Respuesta: Añadir validar NIF a esta funcion

He añadido esta funcion dentro de la funcion general que me valida antes de enviar... pero no me funciona, necesitaria algo asi.. pero no se porqué no funciona...

Código HTML:
if (document.frmdatos.tipo_documento.value=='NIF')
	{
		if (document.frmdatos.documento.value.length <='8')
		{
			alert('Documento incompleto');
			document.frmdatos.documento.focus();
			return;
		}
		if (document.frmdatos.documento.value.length >='10')
			{
				alert('Por favor, revise su NIF, gracias');
				document.frmdatos.documento.focus();
				return;
			}
			
		if (document.frmdatos.documento.value.length='9')
			{
				 numero = document.frmdatos.documento.value.substr(0,document.frmdatos.documento.value.length-1);
				  let = document.frmdatos.documento.value.substr(document.frmdatos.documento.value.length-1,1);
				  numero = numero % 23;
				  letra='TRWAGMYFPDXBNJZSQVHLCKET';
				  letra=letra.substring(numero,numero+1);
				  if (letra!=let) 
					alert('Dni erroneo');
			}	
			
			
	}
Alguien puede echarle un ojo a ver que clase de disparate estoy haciendo?? Gracias

Etiquetas: formulario, funcion, input, select
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 03:30.