El codigo que posteo es uno que yo uso, tal vez no sea la mejor solucion mas quiero compartirla con Uds., para mi se ha vuelto una manera muy efectiva y rapida de dar cierta usabilidad a mis formularios sin tanta complicacion ademas de aplicar javascript no intrusivo
function prepararFormulario() { var txts=document.getElementsByTagName("INPUT"); for(var i=0;i<txts.length;i++) { var txt=txts[i]; txt.onfocus=function() { this.className='focused'; if(this.type=="text") { /*aun me falta terminar la implementacion, estoy buscando un codigo crossbrowser que al obtener el foco seleccione el texto de la caja de texto*/ } } txt.onblur=function() { this.className=''; } ///////////////////////////////////////// //Los navegadores basados en estandares automaticamente crean el Objeto Event //, a pesar que este no sea definido de manera explicita //asi en esta funcion, al enviar e, FF automaticamente genera un objeto Event. txt.onkeypress=function(e) { if(!e)var e=window.event; var xId=new String; xId=this.id; //(!document.all) ? alert(e.srcElement) : alert(e.target); switch(xId.substring(0,3)) { case 'txt': return soloCadenas(e); break; case 'num': return soloNumeros(e); break; case 'fec': return soloFechas(e); break; case 'fic': return soloFechas_Input(e); break; } } } var sels=document.getElementsByTagName("SELECT"); for(var i=0;i<sels.length;i++) { var sel=sels[i]; sel.onfocus=function() { this.className='focused'; } sel.onblur=function() { this.className=''; } } }