Ver Mensaje Individual
  #41 (permalink)  
Antiguo 16/04/2009, 05:47
Avatar de Dude--
Dude--
 
Fecha de Ingreso: junio-2004
Ubicación: Sevilla - España
Mensajes: 197
Antigüedad: 20 años, 7 meses
Puntos: 4
Respuesta: Método y/u objeto de origen

Código javascript:
Ver original
  1. <script type="text/javascript">
  2.             function checkevent(e)
  3.             {
  4.                 var obj=e.srcElement || e.target;
  5.                 var objeto = document.getElementById(obj.name);
  6.                 var evento = e.type;
  7.                
  8.                 if ( obj.name == "email" )
  9.                 {
  10.                     if(evento == "focus" && objeto.value == "tu email")
  11.                     { objeto.value = ""; }
  12.                     if(evento == "blur" && objeto.value == "" )
  13.                     { objeto.value = "tu email"; }
  14.                 }
  15.                
  16.                 if ( obj.name == "pass" )
  17.                 {
  18.                     var formulario = document.getElementById("identificacion");
  19.                     if(evento == "focus" && objeto.value == "tu contraseña")
  20.                     {
  21.                         var nuevotextbox = document.createElement("input");
  22.                         nuevotextbox.setAttribute("id", "pass");
  23.                         nuevotextbox.setAttribute("name", "pass");
  24.                         nuevotextbox.setAttribute("type", "password");
  25.                         nuevotextbox.setAttribute("value", "");
  26.                         nuevotextbox.setAttribute("onfocus", "checkevent(event)");
  27.                         nuevotextbox.setAttribute("onblur", "checkevent(event)");
  28.                         formulario.replaceChild(nuevotextbox, objeto);
  29.                         setTimeout(function(){ nuevotextbox.focus()}, 100);
  30.                     }
  31.                     if(evento == "blur" && objeto.value == "")
  32.                     {
  33.                         var nuevotextbox = document.createElement("input");
  34.                         nuevotextbox.setAttribute("id", "pass");
  35.                         nuevotextbox.setAttribute("name", "pass");
  36.                         nuevotextbox.setAttribute("type", "text");
  37.                         nuevotextbox.setAttribute("value", "tu contraseña");
  38.                         nuevotextbox.setAttribute("onfocus", "checkevent(event)");
  39.                         nuevotextbox.setAttribute("onblur", "checkevent(event)");
  40.                         formulario.replaceChild(nuevotextbox, objeto);
  41.                     }
  42.                 }
  43.        
  44.             }
  45.         </script>

Código html:
Ver original
  1. <form id="identificacion" action="index.php" method="post" enctype="application/x-www-form-urlencoded">
  2.     <input id="email" type="text" name="email" title="Email de usuario" value="tu email" size="20" onfocus="checkevent(event)" onblur="checkevent(event)" />
  3.     <input id="pass" type="text" name="pass" value="tu contraseña" size="10" onfocus="checkevent(event)" onblur="checkevent(event)" />
  4.     <label><input  type="checkbox" name="autologin" />Guardar</label>
  5.     <input type="submit" value="Ok" />
  6. </form>

¿Existe alguna función ya definida en javascript del tipo waituntil....? es decir, una funcion que antes de intentar llevar el foco compruebe que el input ha sido creado. Así eliminariamos el problema derivado de usar setTimeout(), o quizás se puede crear una función que compruebe si el input ya ha sido reemplazado?
__________________
"El camino empieza renunciando el control y volviéndose flexibles, como una brizna de paja en un huracán."

"Desconozco tanto... es excitante comenzar a nadar en este mar de dudas..."

Última edición por Dude--; 16/04/2009 a las 11:37