Foros del Web » Programando para Internet » Javascript »

ayuda con onBlur onFocus

Estas en el tema de ayuda con onBlur onFocus en el foro de Javascript en Foros del Web. lo que pasa es que tendo un formulario que lleva pues nombre direccion telefono etc... cada uno con su respectico campo de texto, coloco un ...
  #1 (permalink)  
Antiguo 24/09/2009, 09:43
(Desactivado)
 
Fecha de Ingreso: junio-2008
Mensajes: 287
Antigüedad: 16 años
Puntos: 9
ayuda con onBlur onFocus

lo que pasa es que tendo un formulario que lleva pues

nombre
direccion
telefono
etc...

cada uno con su respectico campo de texto, coloco un onBlur onfocus para que el texto que esta escrito como valor inicial se borre en cuanto seleccionen el campo de texto pero cuando coloco el segundo codigo para direccion ya no se borra el texto del campo de texto porque sera?

aqui esta mi codigo para el campo nombre

Cita:
<input name="nombre" type="text" class="Estilo46" id="texto" onFocus="Borrar('nombre')" onBlur="Escribir('nombre')" value="nombre"/>
y aqui para el campo direccion

Cita:
<input name="direccion" type="text" class="Estilo46" id="texto" onFocus="Borrar('direccion')" onBlur="Escribir('direccion')" value="direccion"/>
que estoy haciendo mal?
  #2 (permalink)  
Antiguo 24/09/2009, 10:26
Avatar de Avatar810  
Fecha de Ingreso: agosto-2007
Ubicación: Por rumbos Regios
Mensajes: 485
Antigüedad: 16 años, 9 meses
Puntos: 23
Respuesta: ayuda con onBlur onFocus

pon los codigos de las funciones Borrar y Escribir

un error que tienes es que los 2 campos tienen el mismo ID
__________________
Una demo siempre funcionará correctamente hasta que toque algo tu (hasta ahora) cliente.
Avatar810
  #3 (permalink)  
Antiguo 24/09/2009, 10:34
(Desactivado)
 
Fecha de Ingreso: junio-2008
Mensajes: 287
Antigüedad: 16 años
Puntos: 9
Respuesta: ayuda con onBlur onFocus

este es mi codigo de borrar y escribir

Código:
function Borrar(valor)
			{
				if(document.getElementById("texto").value==valor)
				{
					document.getElementById("texto").value="";
				}
			}
			
			function Escribir(valor)
			{
				if(document.getElementById("texto").value=="")
				{
					document.getElementById("texto").value=valor;
				}
			}
Cita:
Iniciado por Avatar810 Ver Mensaje
pon los codigos de las funciones Borrar y Escribir

un error que tienes es que los 2 campos tienen el mismo ID
  #4 (permalink)  
Antiguo 24/09/2009, 11:59
Avatar de Avatar810  
Fecha de Ingreso: agosto-2007
Ubicación: Por rumbos Regios
Mensajes: 485
Antigüedad: 16 años, 9 meses
Puntos: 23
Respuesta: ayuda con onBlur onFocus

OK tal como me lo imaginaba
El error esta en los ID de tus campos, todo ID debe ser unico
y tu haces referencia al mismo indistintamente del campo...

en un rato te paso una de mis funciones con esta finalidad, pero se me junto el trabajo

o si gustas adelantar
1. cada input ponle ID unico (de preferencia igual al name)
2. en las funciones manda de parametroes el ID y el texto predefinido
3. en la funcion compara el valor actual con el predeterminado (getElementeById utilizando el parametro ID), si son iguales quitalo (en el focus) o ponlo (en blur)

saludos
__________________
Una demo siempre funcionará correctamente hasta que toque algo tu (hasta ahora) cliente.
Avatar810
  #5 (permalink)  
Antiguo 24/09/2009, 16:42
Avatar de Avatar810  
Fecha de Ingreso: agosto-2007
Ubicación: Por rumbos Regios
Mensajes: 485
Antigüedad: 16 años, 9 meses
Puntos: 23
Respuesta: ayuda con onBlur onFocus

Ya viendo no tengo a la mano el código completo pero aquí adapto otro que tenia... espero no haber cometido algún error.

Código HTML:
<script>
// Esta funcion ayuda a eliminar los espacios en blanco al inicio y fin de la cadena
function trim(cadena)
{
	for(i=0; i<cadena.length; )
	{
		if(cadena.charAt(i)==" ")
			cadena=cadena.substring(i+1, cadena.length);
		else
			break;
	}
	for(i=cadena.length-1; i>=0; i=cadena.length-1)
	{
		if(cadena.charAt(i)==" ")
			cadena=cadena.substring(0,i);
		else
			break;
	}
	return cadena;
}

// Aplicable cuando un campo lleva un texto predefinido y obtiene el foco de la aplicación
function vaciar(campo, texto)
{
	campo.value=trim(campo.value);
	if(campo.value==texto)
		campo.value="";
}

// Aplica cuando un campo con texto predefinido pierde el foco y no se campturo nada
function llenar(campo, texto)
{
	campo.value=trim(campo.value);
	if(campo.value=="")
		campo.value=texto;
}
</script>

<input name="correo2" type="text" class="chat_textarea" onfocus="vaciar(this,'Escribe tu correo')" onblur="llenar(this,'Escribe tu correo')" value="Escribe tu correo" /> 
__________________
Una demo siempre funcionará correctamente hasta que toque algo tu (hasta ahora) cliente.
Avatar810
  #6 (permalink)  
Antiguo 01/11/2009, 18:36
Avatar de matuteworld  
Fecha de Ingreso: octubre-2007
Ubicación: San Miguel de Tucuman, Tucuman
Mensajes: 79
Antigüedad: 16 años, 7 meses
Puntos: 2
Respuesta: ayuda con onBlur onFocus

Buenos dias, Avatar810 tu funcion funciona en IE como en FF perfectamente.

slds desde ya muchas gracias...

Última edición por matuteworld; 01/11/2009 a las 19:14
  #7 (permalink)  
Antiguo 01/11/2009, 19:27
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años, 1 mes
Puntos: 1485
Respuesta: ayuda con onBlur onFocus

el ejemplo de [i]Avatar810[/b] me funciona en firefox, especificamente 3.5.2, algo habras hecho mal si no te funciona a ti.
Cita:
por otro lado.. asumo que no sumas la variable i del 1er for porque la sumas dentro de el verdad?
no, inclusive en ninguno de los dos bucles se maneja una variable de iteracion. el mecanismo de iteracion se maneja de otra forma. en este caso, mientras el primer caracter es un espacio el bucle se mantiene iterando, pero cuando no es un espacio el ciclo se detiene con break. lo mismo aplica para el segundo bucle.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
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 18:11.