Autor Tema: [DUDA] focus  (Leído 788 veces)

Desconectado AlejandroMMz

  • PHPer@
  • **
  • Mensajes: 61
  • Karma: 0
  • Nuev@ PHPer@
    • Ver Perfil
[DUDA] focus
« en: 30 de Enero de 2011, 20:18:08 pm »
Hola que tal?

resulta que tengo un input el cual quiero que al hacer .focus se borre el contenido automáticamente, lo logré en el codigo HTML haciendo:

Código: [Seleccionar]
<input type="text" name="s_email" class="sus_form" value="Suscripción vía email" [b]onFocus="this.value=''" onblur="this.value='Suscripción vía email'[/b]">[CODE] - lo cual aparte si no escribia algun valor y dejaba el input me dejaba el que tenía por defecto.. pero sucede que no quiero esto dentro del html (ya que intento validarlo a la perfección) y quisiera saber como hacerlo con Javascript, o desde las funciones que tengo en mi archivo de funciones .js (que aplican con Jquery).

gracias de antemano.

Comunidad PHPeros

[DUDA] focus
« en: 30 de Enero de 2011, 20:18:08 pm »

Desconectado Warlox

  • Moderadores PHP
  • PHPero Master
  • ****
  • Mensajes: 1.278
  • Karma: 77
  • Sexo: Masculino
  • A veces hay que aprender a correr antes de caminar
    • Ver Perfil
    • Página personal
Re:[DUDA] focus
« Respuesta #1 en: 30 de Enero de 2011, 20:23:19 pm »
Emmm, ¿y cuál es la duda? o.o
- Moderador de PHP


Desconectado AlejandroMMz

  • PHPer@
  • **
  • Mensajes: 61
  • Karma: 0
  • Nuev@ PHPer@
    • Ver Perfil
Re:[DUDA] focus
« Respuesta #2 en: 30 de Enero de 2011, 20:24:25 pm »
Emmm, ¿y cuál es la duda? o.o

XDD
Poder expresar esto: onFocus="this.value=''" onblur="this.value='Suscripción vía email'
pero en Js, pues no lo quiero ahi en el html ya que no se valida la 1.0 trans.. del html.

Desconectado Physlet

  • PHPero Experto
  • *****
  • Mensajes: 822
  • Karma: 41
  • Sexo: Masculino
  • Todo es posible con esfuerzo, dedicación e interés
    • Ver Perfil
    • PanamaDev
Re:[DUDA] focus
« Respuesta #3 en: 30 de Enero de 2011, 20:46:00 pm »
¿De casualidad te suena la librería de jQuery? Si la has usado alguna vez dime, sino déjame y pienso otra forma de explicártelo xD
Edito: terminé de leer tu quote y mencionas jQuery así que te explico como hacerlo ahí.

Donde tú colocas los eventos a realizar y demás, es decir, dentro del

$(document).ready(function(){

//Aqui

});

Podrás utilizar estos 2 métodos: object.focus() y object.blur(), que hacen lo que quieres.
Lo primero es asignarle un id sólo a ese input, por ejemplo:

<input type="text" name="s_email" id="mi-id" class="sus_form" value="Suscripción vía email" />

Luego, donde te mencione arriba colocarías esto:

$("#mi-id").focus(function(){
   //Aquí escribes lo que haces cuando se le enfoca
});

$("#mi-id").blur(function(){
  //Aquí escribes lo que haces cuando pierde el enfoque
});

Ya con eso creo que puedes hacer lo demás, sino pregunta.
« Última modificación: 30 de Enero de 2011, 20:51:55 pm por Physlet »

Desconectado AlejandroMMz

  • PHPer@
  • **
  • Mensajes: 61
  • Karma: 0
  • Nuev@ PHPer@
    • Ver Perfil
Re:[DUDA] focus
« Respuesta #4 en: 30 de Enero de 2011, 20:57:20 pm »
¿De casualidad te suena la librería de jQuery? Si la has usado alguna vez dime, sino déjame y pienso otra forma de explicártelo xD
Edito: terminé de leer tu quote y mencionas jQuery así que te explico como hacerlo ahí.

Donde tú colocas los eventos a realizar y demás, es decir, dentro del

$(document).ready(function(){

//Aqui

});

Podrás utilizar estos 2 métodos: object.focus() y object.blur(), que hacen lo que quieres.
Lo primero es asignarle un id sólo a ese input, por ejemplo:

<input type="text" name="s_email" id="mi-id" class="sus_form" value="Suscripción vía email" />

Luego, donde te mencione arriba colocarías esto:

$("#mi-id").focus(function(){
   //Aquí escribes lo que haces cuando se le enfoca
});

$("#mi-id").blur(function(){
  //Aquí escribes lo que haces cuando pierde el enfoque
});

Ya con eso creo que puedes hacer lo demás, sino pregunta.

Muchas gracias, entiendo perfectamente, solo que es justo donde no he podido, donde debo escribir que pasa XDD.. no se como expresarlo.. osea tomar el valor que ahi en caso de focus y reemplazarlo por "" (nada) o colocar un valor en caso de blur..  :( :( :(

Desconectado Physlet

  • PHPero Experto
  • *****
  • Mensajes: 822
  • Karma: 41
  • Sexo: Masculino
  • Todo es posible con esfuerzo, dedicación e interés
    • Ver Perfil
    • PanamaDev
Re:[DUDA] focus
« Respuesta #5 en: 30 de Enero de 2011, 21:16:29 pm »
Muchas gracias, entiendo perfectamente, solo que es justo donde no he podido, donde debo escribir que pasa XDD.. no se como expresarlo.. osea tomar el valor que ahi en caso de focus y reemplazarlo por "" (nada) o colocar un valor en caso de blur..  :( :( :(
Para eso ya vendría la lógica de cada quién, yo lo que por lo regular hago es:
- Declaro una variable que contenga el texto por defecto.
- En caso de enfoque, comprobar que lo que hay en la caja de texto es el texto por defecto, y si es así, vaciarlo.
- En caso de perdida de enfoque (blur), comprobar que lo que hay en la caja de texto es un espacio vacío, y si es así, volver a asignar el texto por defecto.

Desconectado AlejandroMMz

  • PHPer@
  • **
  • Mensajes: 61
  • Karma: 0
  • Nuev@ PHPer@
    • Ver Perfil
Re:[DUDA] focus
« Respuesta #6 en: 30 de Enero de 2011, 21:17:54 pm »
Para eso ya vendría la lógica de cada quién, yo lo que por lo regular hago es:
- Declaro una variable que contenga el texto por defecto.
- En caso de enfoque, comprobar que lo que hay en la caja de texto es el texto por defecto, y si es así, vaciarlo.
- En caso de perdida de enfoque (blur), comprobar que lo que hay en la caja de texto es un espacio vacío, y si es así, volver a asignar el texto por defecto.

Por eso.. es exactamente lo que necesito pero no se el código la forma de construir eso.. alguna referencia o web de donde pueda encontrarlo? o por que nombre etc? ...  :-[

Desconectado Physlet

  • PHPero Experto
  • *****
  • Mensajes: 822
  • Karma: 41
  • Sexo: Masculino
  • Todo es posible con esfuerzo, dedicación e interés
    • Ver Perfil
    • PanamaDev
Re:[DUDA] focus
« Respuesta #7 en: 30 de Enero de 2011, 21:27:30 pm »
Por eso.. es exactamente lo que necesito pero no se el código la forma de construir eso.. alguna referencia o web de donde pueda encontrarlo? o por que nombre etc? ...  :-[
Es que a mí me gusta poner a pensar un poco xdd... No me gusta dar códigos hechos realmente.
Pero las comprobaciones que te hice se hacen con sentencias if y lo de obtener el valor (value) de un objeto es con el método val(); y para sobreescribir ese valor se usar val('loquequieresasignarle');

Desconectado AlejandroMMz

  • PHPer@
  • **
  • Mensajes: 61
  • Karma: 0
  • Nuev@ PHPer@
    • Ver Perfil
Re:[DUDA] focus
« Respuesta #8 en: 30 de Enero de 2011, 22:17:17 pm »
Es que a mí me gusta poner a pensar un poco xdd... No me gusta dar códigos hechos realmente.
Pero las comprobaciones que te hice se hacen con sentencias if y lo de obtener el valor (value) de un objeto es con el método val(); y para sobreescribir ese valor se usar val('loquequieresasignarle');

Ok.. no tenía idea más halla de lo que expliqué aquí pero gracias a esa base ya entendí y al parecer pude hacerlo funcionar..

$("#sus_form").focus(function(){
$(this).val('') })

Muchas gracias! k