veamos. la expresión que tienes es para validar que las teclas sean las aceptables, de modo que esa expresión la usas en eventos relacionados al teclado dentro del mismo campo.
Código:
<input onkeypress="return ValidaNombre(event);" name="nombre" />
// tu funcion;
function ValidaNombre(e) {
tecla = (document.all) ? e.keyCode : e.which;
if (tecla == 8) return true;
// he modificado la expresion a lo siguiente porque;
// despues de todo solo vas a validar una sola letra;
var rexp = /[a-zA-ZñÑ\s]/);
te = String.fromCharCode(tecla);
return rexp.test(te);
}
validar el contenido tiene mayor sentido cuando se envie el formulario, por tanto este debes de hacerlo en el evento onsubmit del formulario.
Código:
<form onsubmit="return fnValidate(this);">
function fnValidate(form){
var regex = /^[a-zñÑ]+(\s[a-zñÑ]+)?$/i;
return regex.test(form.nombre.value);
}