Hola gente!!!!
Tengo un problema con la opción de validar el CIF o NIF de una empresa. Consegui por aqui un codigo que lo validaba:
 
<script>
function cif(cif)
{
par = 0
non = 0
letras="ABCDEFGHKLMNPQS"
let=cif.charAt(0)
 
if (!isNaN(let))
  {
  nif=cif
  validar(nif)
  return false
  }
 
if (cif.length!=9)
  {
  alert('El Cif debe tener 9 dígitos')
  document.formulario.nif.focus()
  return false
  }
 
if (letras.indexOf(let.toUpperCase())==-1)
  {
  alert("El comienzo del Cif no es válido")
  document.formulario.nif.focus()
  return false
  }
 
for (zz=2;zz<8;zz+=2)
  {
  par = par+parseInt(cif.charAt(zz))
  }
 
for (zz=1;zz<9;zz+=2)
  {
  nn = 2*parseInt(cif.charAt(zz))
  if (nn > 9) nn = 1+(nn-10)
  non = non+nn
}
 
parcial = par + non
 
control = (10 - ( parcial % 10))
 
if (control==10) control=0
 
if (control!=cif.charAt(8))
  {
  alert("El Cif no es válido")
  document.formulario.nif.focus()
  return false
  }
 
formulario.submit();
}
 
function validar(abc)
{
dni=abc.substring(0,abc.length-1)
let=abc.charAt(abc.length-1)
if (!isNaN(let))
 {
  alert('Falta la letra')
  document.formulario.nif.focus()
  return false
 }
else
 {
  cadena="TRWAGMYFPDXBNJZSQVHLCKET"
  posicion = dni % 23
  letra = cadena.substring(posicion,posicion+1)
  if (letra!=let.toUpperCase())
   {
    alert("Nif no válido")
    document.formulario.nif.focus()
    return false
   }
 }
alert("Nif válido")
formulario.submit();
}
</script>
 
Esto me funciona bien si en la caja de texto llamo a la funcion:
<input type="text" name="nif" onBlur="cif(this.value)"> 
 
pero claro, yo este campo lo tengo metido en un formulario con un boton aceptar que envia varios datos. Si pongo dentro del boton el onClick="cif(this.value)" pues no funciona igual.
 
Alguien me daria una solución?
 
Gracias y un saludo. 
   
 


 Este tema le ha gustado a 1 personas
Este tema le ha gustado a 1 personas