Correcta observación @isaBelM, bueno lo del this.value,nextElementSibling. En cuanto al operador ternario en determinados posts lo evito para hacer más claro el funcionamiento.
Si bien @garcia1808 ha respondido aun, agregaría una modificación extra, ya que si los valores a usar fuesen efectivamente nombre y apellido, existe siempre la posibilidad de que estos sean compuetos, por lo que requeriría de espacios en blanco, de ahi que nuestra validación de la cadena debería ser
Código Javascript
:
Ver original// agregamos \s par permitir espacios
var exp_reg = /^[a-z\s\u00C0-\u00ff]+$/i;
// hacemos un trim para evitar que sean solo espacios en blanco
idcampo = idcampo.replace(/^\s+/g,'').replace(/\s+$/g,'');
la script final
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 exp_reg = /^[a-z\s\u00C0-\u00ff]+$/i; // expresión regular para letras(máy o minus), acentuadas o no,
idcampo = idcampo.replace(/^\s+/g,'').replace(/\s+$/g,'');// removemos espacios vacioas al inicio y final
mensaje.innerHTML = exp_reg.test(idcampo) == true ? "Correcto" : "Incorrecto";
}
<input type="text" onkeyup="validar(this.value, this.nextElementSibling);" /> <span id="mensaje_nombre"><!-- aqui el mensaje a medida que se introducen caracteres --></span> <input type="text" onkeyup="validar(this.value, this.nextElementSibling);" /> <span id="mensaje_apellido"><!-- aqui el mensaje a medida que se introducen caracteres --></span>
Saludos