Foros del Web » Programando para Internet » Javascript »

Problemas con onBlur y onFocus in Explorer

Estas en el tema de Problemas con onBlur y onFocus in Explorer en el foro de Javascript en Foros del Web. Bueno, si bien le encontré la vuelta y me anda en ambos browser, planteo el problema porque me quedo la chispa de la duda de ...
  #1 (permalink)  
Antiguo 22/05/2008, 09:22
Avatar de faiverson  
Fecha de Ingreso: mayo-2005
Mensajes: 79
Antigüedad: 19 años
Puntos: 0
Busqueda Problemas con onBlur y onFocus in Explorer

Bueno, si bien le encontré la vuelta y me anda en ambos browser, planteo el problema porque me quedo la chispa de la duda de porque no andaba en Explorer

El tema es que tengo una caja de texto, previamente escrita, y queria que cuando se escriba sobre ella quede vacia, ah... tambien estaba en mayuscula por cuestiones de diseño. En fin el codigo es sencillo:

Código HTML:
 <form action="send.php" name="search" method="post">
        <div class="header2">Recommend this site</div>
        <div class="header3"><input class="input_search" name="search" id="search" type="text" value="Type email here" onFocus="javascript:unrease('search');" onBlur="javascript:rease('search','Type email here');"/></div>
        <div class="header4"><input type="image" src="images/button_send.jpg" /></div>
        </form> 
Luego el script que uso es:

Código:
function unrease(id) {
//este if lo uso por el problema con el explorer de que no me anda bien el getElementById

	if(navigator.appName != 'Microsoft Internet Explorer') {
		div = document.getElementById(id);
	}
	else {
		div = document.forms[0].elements[id];
	}
	if(div.value == 'Type email here') {
		div.value="";
	}
	div.style.textTransform="none";
}

function rease(id, text) {
	if(navigator.appName != 'Microsoft Internet Explorer') {
		div = document.getElementById(id);
	}
	else {
		div = document.forms[0].elements[id];
	}
	if(div.value.length == 0) {
		div.value=text;
		div.style.textTransform="uppercase";
	}
	else {
		div.style.textTransform="none";
	}
}
El tema es que parece no reconocer el getElementById o algo asi...

Haber si alguien sabe que sucede...
__________________
Fabi... fighting versus the web
  #2 (permalink)  
Antiguo 22/05/2008, 09:52
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 4 meses
Puntos: 61
Respuesta: Problemas con onBlur y onFocus in Explorer

A ver si asi...

function unrease(id) {
//este if lo uso por el problema con el explorer de que no me anda bien el getElementById


div = document.getElementById(id);

if(div.value == 'Type email here') {
div.value="";
}
div.style.textTransform="none";
}

function rease(id, text) {

div = document.getElementById(id);

if(div.value.length == 0) {
div.value=text;
div.style.textTransform="uppercase";
}
else {
div.style.textTransform="none";
}
}
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #3 (permalink)  
Antiguo 22/05/2008, 11:52
 
Fecha de Ingreso: marzo-2008
Mensajes: 31
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Problemas con onBlur y onFocus in Explorer

ehh no entiendo quieres que borre cualquier cosa previa si va a escribir...

de todas formas el problema es que usas el id, lo cual se solventa asi..

Código:
function borrar(ces, text)   // ces es el objeto input que pasas y text tu texto..
{
    if(ces.value.length >= 0) // ahy letras las borro
     {
          ces.value = "";
     }
    else if( ces.value=="" ) 
    {
          ces.value = text; //estaba vacía, ponemos el texto y lo convet a mayuscula
          ces.style.textTransform="uppercase";
    }
}
el verdadero problema de onblur y onfocus es que si usas la misma o asi definas mas funciones por cada objeto input, cuando cambies de foco , pasara que un campo inpuit en particular necesitara dos clicks, este problema si no esta en firefox esta en opera..

debo aclarar que esto no es un problema de onblur, ni onfocus, es unj problema de MALA PROGRAMACION! puesto que m$ ha modificado mucho el api de javascript...

Última edición por qgqlochekone; 22/05/2008 a las 12:10
  #4 (permalink)  
Antiguo 23/05/2008, 16:09
Avatar de faiverson  
Fecha de Ingreso: mayo-2005
Mensajes: 79
Antigüedad: 19 años
Puntos: 0
Respuesta: Problemas con onBlur y onFocus in Explorer

KarlanKas, lo que me pones es justamente lo que hice al principio. Y el problema radica en que la primera vez usando document.getElementById(id) llega undefined, y no toma lo que se pone en value, no se porque, ni entiendo su comportamiento, que es justamente lo que me intrigo...

Gracias a ambos por responder.
Como dije, el codigo que escriba anda barbaro. Queria saber porque sucedia ese comportamiento en el onBlur on Focus en Explorer.

Es decir, a priori, el codigo de KarlanKas deberia funcionar sin problemas en ambos browsers, pero solo anda bien en firefox.
__________________
Fabi... fighting versus the web
  #5 (permalink)  
Antiguo 23/05/2008, 16:30
Avatar de faiverson  
Fecha de Ingreso: mayo-2005
Mensajes: 79
Antigüedad: 19 años
Puntos: 0
Respuesta: Problemas con onBlur y onFocus in Explorer

qgqlochekone estuve probando tu codigo.
Antes que nada, lo que queria hacer era borrar lo escrito en el input, que esta en mayusculas, limpiarlo y escribir en minusculas.
Despues si sale sin escribir nada, restauro la palabra, sino, dejo lo que escribio.

Vos propones pasar directamente el objeto mediante this, en vez de pasar el id del elemento. Es buena, la verdad que no la habia pensado...
Pero, se te ocurre porque sera que la primera vez falla el getElementById() en explorer en el onFocus???

Esa seria mi gran, gran duda... igual, muy buena alternativa presentada...
__________________
Fabi... fighting versus the web
  #6 (permalink)  
Antiguo 24/05/2008, 02:29
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 4 meses
Puntos: 61
Respuesta: Problemas con onBlur y onFocus in Explorer

Creo que puede estar relacionado con esto:
http://www.sixteensmallstones.org/ie...-getattributes
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #7 (permalink)  
Antiguo 24/05/2008, 17:30
Avatar de faiverson  
Fecha de Ingreso: mayo-2005
Mensajes: 79
Antigüedad: 19 años
Puntos: 0
Respuesta: Problemas con onBlur y onFocus in Explorer

Muy bueno el articulo. Entonces parece ser un bug de IE! Interesting...

Bueno, gente, gracias por contestar y preocuparse. Saludos KarlanKas y qgqlochekone! Y gracias!
__________________
Fabi... fighting versus the web
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 08:00.