Foros del Web » Programando para Internet » Javascript »

No funciona onFocus="this.select();"

Estas en el tema de No funciona onFocus="this.select();" en el foro de Javascript en Foros del Web. Ayuda he visitado muchas paginas para hacer lo siguiente: cuando le doy click a un campo de tipo <input type="text" name="nombreCampo" id="nombreCampo" onClick="this.select();" onFocus="this.select();" /> ...
  #1 (permalink)  
Antiguo 25/05/2010, 17:33
 
Fecha de Ingreso: agosto-2008
Mensajes: 15
Antigüedad: 15 años, 8 meses
Puntos: 0
No funciona onFocus="this.select();"



Ayuda he visitado muchas paginas para hacer lo siguiente:

cuando le doy click a un campo de tipo

<input type="text" name="nombreCampo" id="nombreCampo" onClick="this.select();" onFocus="this.select();" />

cuando le doy un click el texto se selecciona (que eso es lo que quiero) pero cuando llego a el a partir del elemento anterior por medio de la tecla <tab> (que deberia ser el evento onFocus) llego al elemento pero el texto del input no se selecciona.

puse un alert en el evento onFocus de esta manera

onFocus="alert('entro a evento onfocus');"

y si mando el mensaje lo cual quiere decir que si entra pero el problema es que si escribo

onFocus="this.select();

no me hace caso y repito si escribo

onClick="this.select();"

si lo hace.

También ya meti el codigo en una función.

Necesito su ayuda please es una cosa pequeña pero me la pidieron.

PD. en Mozilla lo hace en automatico pero no en explorer.


Desde ya muchas gracias

Última edición por Danny_fury00; 26/05/2010 a las 08:48 Razón: solo lo edite para que me avise por correo electronico
  #2 (permalink)  
Antiguo 25/05/2010, 17:51
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
Puntos: 1485
Respuesta: No funciona onFocus="this.select();"

tendras otra cosa afectando tu codigo. en todo caso, una observacion. no veo como onfocus te impide seleccionar el texto cuando usas la tecla tabular. que conste, en iexplorer8, firefox3, chrome4; cuando un campo recibe foco a traves del tabulador, automaticamente el contenido es seleccionado. por otro lado, en chrome, si intentas seleccionar el contenido con el evento onfocus, la seleccion se pierde. yo tu, solo usaria el evento onclick, el cual parece trabajar bien en los tres navegadores antes indicados.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #3 (permalink)  
Antiguo 26/05/2010, 08:41
 
Fecha de Ingreso: agosto-2008
Mensajes: 15
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: No funciona onFocus="this.select();"

Antes que nada gracias por responder, y en efecto eso pienso que lago puede estar afectando el codigo pongo el input completo para ver si puedo dar una pista más y te comento tengo IE8 y con el firefox funciona bien.


<input name="txtMargenIntermediario" type="text" id="txtMargenIntermediario"
size="15" maxlength="9" align="left" value="<%=margenIntermediario%>"
onChange="javascript:return validaMargenIntermediario(this);" onClick="this.select();" onFocus="this.select();" />

El archivo es un jsp y el codigo Java que le asigna el valor por default es el siguiente:

String margenIntermediario = "";
if (request.getParameter("txtMargenIntermediario") == null) {
margenIntermediario = String.valueOf(0.00);
} else {
margenIntermediario = (String) request
.getParameter("txtMargenIntermediario");
}

desde ya muchas gracias
  #4 (permalink)  
Antiguo 26/05/2010, 15:22
 
Fecha de Ingreso: agosto-2008
Mensajes: 15
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: No funciona onFocus="this.select();"

Adicional a esto en otros input no estoy usando el evento onfocus solo el onclick y de todos modos no se selecciona el texto.

PD se que es un requerimiento muy quisquilloso en especial porque todo el portlet funciona bien pero es un requerimiento al fin y al cabo

gracias
  #5 (permalink)  
Antiguo 27/05/2010, 09:54
 
Fecha de Ingreso: agosto-2008
Mensajes: 15
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: No funciona onFocus="this.select();"

BUENO EN VISTA DE QUE NO PUDE RESOLVER EL PROBLEMA LE DI LA VUELTA COMO SIGUE

<input name="txtMargenIntermediario" type="text" id="txtMargenIntermediario"
size="15" maxlength="9" align="left" value="<%=margenIntermediario%>"
onChange="javascript:return validaMargenIntermediario(this);"
onFocus="if(this.value=='0.0')this.value='';"
onBlur="if(trim(this.value)=='')this.value='0.0';"
onClick="this.select();"
/>

lo que hace es que en lugar de que cuando reciba el foco seleccione todo el contenido del input lo que hace es que borra el contenido cuando es por default y si no se modifica el valor pues lo vuelve a regresar al default, anexo la funcion trim ya que esta no existe por default

/*
* devuelve la cadena sin espacios
* @autor Daniel Del Angel (la tome de una pagina pero anote el url)
* @version 1.0, 2010-03-12
* @param s cadena a hacer trim
*/
function trim(s){
s = s.replace(/\s+/gi, " "); //sacar espacios repetidos dejando solo uno
s = s.replace(/^\s+|\s+$/gi, ""); //sacar espacios blanco principio y final
return s;
}


Cabe comentar que usar el onFocus="this.select();" o usar funciones que se encuentran en la web muchos comentan que si funcionan para IE8 a mi no me funciono por eso es que le saque la vuelta.

No se como puedo dar por cerrado este tema si solo lo puede hacer un moderador se lo pido de la manera más atenta y agradezco la ayuda de todos los que se interesaron en el tema (zerokilled y los que lo hayan intentado sin poder obtener resultados).

Etiquetas: Ninguno
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 13:02.