hay código más sencillos para validar eso, ejemplo
Código HTML:
Ver original<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <script type="text/javascript"> function validar(idcampo, mensaje) {
var cadena = document.getElementById(idcampo).value;
var exp_reg = /^[a-z\s\u00C0-\u00ff]+$/i; // expresión regular para letras(máy o minus), acentuadas o no, y espacios en blanco
var verifica = exp_reg.test(cadena);
if (verifica == true){
//alert('ok');
document.getElementById(mensaje).innerHTML = "Correcto";
}else {
//alert('error');
document.getElementById(mensaje).innerHTML = "Incorrecto";
return false;
}
}
<input type="text" onkeyup="validar(this.id,'mensaje_nombre');" id="nombre" /> <span id="mensaje_nombre"><!-- aqui el mensaje a medida que se introducen caracteres --></span> <input type="text" onkeyup="validar(this.id,'mensaje_apellido');" id="apellido" /> <span id="mensaje_apellido"><!-- aqui el mensaje a medida que se introducen caracteres --></span>
En cuanto tu script tiene varios problemas, esto no define nada
"validaCampo(this.nombre.value);"
Podrias poner
onclick="validaCampo('nombre');"
y en el script
var campo = document.getElementById(campo).value;
con eso te funcionaría, a medias... porque ahi aparece la validación que está mal hecha. Revisala
Saludos