Foros del Web » Programando para Internet » Javascript »

evento onfocus

Estas en el tema de evento onfocus en el foro de Javascript en Foros del Web. necesito crear una condicion para que al hacer situarme en un elemento del formulario, este se quede en blanco respecto al escrito que tiene por ...
  #1 (permalink)  
Antiguo 07/01/2013, 14:22
 
Fecha de Ingreso: noviembre-2012
Ubicación: Monzón
Mensajes: 157
Antigüedad: 11 años, 5 meses
Puntos: 0
Exclamación evento onfocus

necesito crear una condicion para que al hacer situarme en un elemento del formulario, este se quede en blanco respecto al escrito que tiene por defecto( 'value' ),y cuando quiera regresar a ese campo para modificarlo, no se borre lo escrito anteriormente.
a ver si me pueden ayudar ya que por mas vueltas que le doy no lo consigo...
el codigo que creé es este pero me falta la condicion para cuando pretendo modificar el elemento no se borre su contenido:

function borrar_elemento(elemento){

document.getElementById(elemento).value = "";
document.getElementById(elemento).style.background Color= "#F6FFA9";
document.getElementById(elemento).style.border= "2px solid #e6b700";
  #2 (permalink)  
Antiguo 07/01/2013, 16:20
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: evento onfocus

Cita:
Iniciado por fmiguelcapel Ver Mensaje
necesito crear una condicion para que al hacer situarme en un elemento del formulario, este se quede en blanco respecto al escrito que tiene por defecto( 'value' ),y cuando quiera regresar a ese campo para modificarlo, no se borre lo escrito anteriormente.
a ver si me pueden ayudar ya que por mas vueltas que le doy no lo consigo...
el codigo que creé es este pero me falta la condicion para cuando pretendo modificar el elemento no se borre su contenido:

function borrar_elemento(elemento){

document.getElementById(elemento).value = "";
document.getElementById(elemento).style.background Color= "#F6FFA9";
document.getElementById(elemento).style.border= "2px solid #e6b700";
Si el value por defecto es "hola", entonces pone como condición que solo los ponga en blanco si el value es "hola"

if(document.getElementById(elemento).value == "hola"){
document.getElementById(elemento).value = "";
}
Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #3 (permalink)  
Antiguo 07/01/2013, 16:33
 
Fecha de Ingreso: noviembre-2012
Ubicación: Monzón
Mensajes: 157
Antigüedad: 11 años, 5 meses
Puntos: 0
Exclamación Respuesta: evento onfocus

lo se, pero el problema de esa condicion, es que como en el formulario como se puede ver hay varios elementos con diferentes value, no se como indicarlo...
quiero decir que al poner elemento como parametro de la funcion, es porque tengo barios value con sus correspondientes palabras y entonces se deberia crear esa condicion para todos esos value...
  #4 (permalink)  
Antiguo 07/01/2013, 16:40
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: evento onfocus

Cita:
Iniciado por fmiguelcapel Ver Mensaje
lo se, pero el problema de esa condicion, es que como en el formulario como se puede ver hay varios elementos con diferentes vallue, no se como indicarlo...
Yo no veo varios elementos, veo tan solo uan función que recibe un parámetro.
ademas solo bastaría llamar la función con un evento en el campo sobre el que quieras que actue

Código HTML:
Ver original
  1. <intpu type="text" value="hola" id="xxx" onfocus="tuFuncion(this.id);" />

SAludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #5 (permalink)  
Antiguo 07/01/2013, 17:45
 
Fecha de Ingreso: noviembre-2012
Ubicación: Monzón
Mensajes: 157
Antigüedad: 11 años, 5 meses
Puntos: 0
Exclamación Respuesta: evento onfocus

ya llamo a la funcion desde el elemento refiriendome a esa funcion; pero como dije en sea funcion externa se puede crear la condicion que me dijiste; y funciona para ese elemento; pero como hacer que funcione esa misma funcion para los otros elementos del mismo formulario con esa condicion, si el valor del elemento value cambia para los otros elementos?
en cualquier cosa me quedaria crear tantas condiciones como elementos en que el valor value cambie...saludos...
  #6 (permalink)  
Antiguo 07/01/2013, 18:16
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: evento onfocus

Entonces pasás los 2 valores como parámetro, el id del elemento y su valor

Código HTML:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <title>titulo</title>
  5. <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  6.  
  7. <script type="text/javascript">
  8. //<![CDATA[
  9. function fnc(elemento,elValor){
  10. var valor = document.getElementById(elemento);
  11. if(valor.value == elValor){
  12. valor.value = "";
  13. }
  14. }
  15.  
  16. //]]>
  17. </head>
  18. <form action="#">
  19. <input type="text" value="hola" id="nombre" onfocus="fnc(this.id,'hola')" /><br />
  20. <input type="text" value="hola2" id="nombre2" onfocus="fnc(this.id,'hola2')" /><br />
  21. </form>
  22. </body>
  23. </html>

Me suena a que querés hacer una suerte de "placeholder" pero no estoy muy seguro
Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #7 (permalink)  
Antiguo 07/01/2013, 20:19
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años
Puntos: 834
Respuesta: evento onfocus

En lugar de elValor es mejor usar
Código:
document.getElementById(elemento).defaultValue;
  #8 (permalink)  
Antiguo 07/01/2013, 20:32
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: evento onfocus

Cita:
Iniciado por Panino5001 Ver Mensaje
En lugar de elValor es mejor usar
Código:
document.getElementById(elemento).defaultValue;
Muy buena como siempre @Panino5001, nunca la había usado

Entonces nos quedaría
Código HTML:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <title>titulo</title>
  5. <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  6. <script type="text/javascript">
  7. //<![CDATA[
  8. function fnc(elemento){
  9. var valor = document.getElementById(elemento);
  10. if(valor.value == valor.defaultValue){
  11. valor.value = "";
  12. }
  13. }
  14.  
  15. //]]>
  16. </head>
  17. <form action="#">
  18. <input type="text" value="hola" id="nombre" onfocus="fnc(this.id)" /><br />
  19. <input type="text" value="hola2" id="nombre2" onfocus="fnc(this.id)" /><br />
  20. </form>
  21. </body>
  22. </html>

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #9 (permalink)  
Antiguo 08/01/2013, 11:30
 
Fecha de Ingreso: noviembre-2012
Ubicación: Monzón
Mensajes: 157
Antigüedad: 11 años, 5 meses
Puntos: 0
Exclamación Respuesta: evento onfocus

Muchas gracias a todos por vuestra colaboración, y he de decir que funciona perfectamente; aunque tambien podría simplificarla sin tener que utilizar una condicion ya que la propiedad 'defaultvalue' ( que desconocía ) es de gran utilidad:

document.getElementById(elemento).defaultValue = "";

Como dije, muchas gracias y hasta la próxima...

Etiquetas: evento, formulario
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:59.