Pues si, lo poco que di de javascript fue justamente para eso.
Te cuento la idea de lo que me enseñaron:
En el formulario, despues de acabar los input del tipo texto, pones al final un simbolo que quieras para avisar del error (yo por ejemplo usaba *).
Entonces le das un class="novisible" y en el css .novisible{visibility:hidden;}
y le tendras que decir a qué funcion del javscript llamará cuando haga cambios en el campo de texto. Por ejemplo el codigo que usaba:
Código HTML:
<input type="text" id="nombre" name="nombre" size="15" maxlength="15" onchange="javascript: return f_val_nombre(window.document.forms['form_id'].elements['nombre'].value, 'nombre_class', 'visible', 'novisible')"/>
<span id="nombre_class" class="novisible"> * </span>
La funcion que uso como ves es f_val_nombre, y su codigo seria asi:
Código:
//valida el nombre. El campo no puede estar vacio ni tener numeros, solo letras, y la primera en mayuscula.
function f_val_nombre(nombre, id_class, si, no) {
var a = window.document.getElementById(id_class);
if (f_isAllLetter(nombre)) {
a.className = no;
return true;
} else {
a.className = si;
return false;
}
}
Tambien se pueden hacer funciones para validar una fecha tipo 15/10/1976 pero bueno buscando encontraras muchas parecidas, y para validar que solo se introducen numeros tambien es muy sencillo, hay muchas formas, una de ellas (personalizable basandose en la tabla ascii, por eso la pongo):
Código:
// Devuelve true si todos los caracteres de la cadena son numeros y false si no.
function f_isAllNumber(cadena) {
if (cadena.length == 0) {
return false
} else {
var a, i, aux
aux = String(cadena); a = true;
for (i = 0; i < aux.length && a; i++) {
// Dos formas de hacer lo del codigo ASCII:
// cadena.charAt(i) < "{"
// cadena.charCodeAt(i) < 123
a = aux.charCodeAt(i) < 58 && aux.charCodeAt(i) > 47
}
return a
}
}