Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Seleccionando el atributo "name"

Estas en el tema de Seleccionando el atributo "name" en el foro de Frameworks JS en Foros del Web. Buenas... Estoy haciendo una especie de tooltip que, segun el atributo name , muestra una linea u otra. No se demasiado de javascript y normalmente ...
  #1 (permalink)  
Antiguo 28/05/2012, 11:25
 
Fecha de Ingreso: febrero-2008
Mensajes: 269
Antigüedad: 16 años, 1 mes
Puntos: 5
Seleccionando el atributo "name"

Buenas...

Estoy haciendo una especie de tooltip que, segun el atributo name, muestra una linea u otra. No se demasiado de javascript y normalmente algo muy simple me dura horas hasta que consigo hacerlo pero en este caso se me resiste. Cuando creo que lo arreglé, sale otro problema.

Código Javascript:
Ver original
  1. $(document).ready(function() {
  2.             $('input, select, textarea').focusin(function() {
  3.                 var helper = $('.helper');
  4.                 if($('.helper:hidden')) { helper.css('visibility', 'visible'); }
  5.                
  6.                 if($('[name="features"]')) {
  7.                     helper.html('¡Pon tu nombre! ¡Solo uno si tiene varios y no pongas el clan!');
  8.                 } else {
  9.                     helper.css('visibility', 'hidden');
  10.                 }
  11.             }).blur(function() {
  12.                 $('.helper').css('visibility', 'hidden');
  13.             });
  14.         });

Creo que es facil de entender el código. Segun el name modifico el contenido del div "helper". El problema es que no distingue entre un input u otro, es decir, marque el input que marque, siempre sale el texto cuando solo debería salir al marcar el input con el name features.

No se porque pasa esto y probablemente será alguna tontería :\ pero simplemente no la veo...

A ver si alguien me puede echar una mano.
  #2 (permalink)  
Antiguo 28/05/2012, 12:51
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Seleccionando el atributo "name"

¿Como tienes tu markup (HTML)? Creo tendrías que pasar el elemento que seleccionas como scope ej:
Código Javascript:
Ver original
  1. if ($('[name="features"]', this)) {
  2.  
  3. }

Saludos.
  #3 (permalink)  
Antiguo 28/05/2012, 13:06
 
Fecha de Ingreso: febrero-2008
Mensajes: 269
Antigüedad: 16 años, 1 mes
Puntos: 5
Respuesta: Seleccionando el atributo "name"

El html concreto de ese elemento es este

Código HTML:
Ver original
  1. <tr>
  2.                 <td class="sub">Caracteristicas</td>
  3.                 <td class="row2" colspan="3" style="text-align: center">
  4.                     <textarea class="ficha" name="features" rows="2" cols="70" required="required" placeholder="¿Lleva tatuajes? ¿Piercings? ¿Le falta una pierna?"></textarea>
  5.                 </td>
  6.             </tr>

El formulario lo tengo en una tabla, de toda la vida.

Le he puesto el this y sigue sin funcionar. Ahora voy a probar a ponerle "textarea" delante aunque en teoría funciona sin necesidad de ponerle eso, no? No he caído en probarlo antes. Si lo arreglo así, edito esto y aviso.

Gracias por responder, GatorV
  #4 (permalink)  
Antiguo 28/05/2012, 13:29
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Seleccionando el atributo "name"

A ver entonces tratando de entender, quieres poner en el div helper, el contenido de lo que viene en tu "placeholder" de cada atributo ¿cuando haga focus?, tendrías que hacer algo así:
Código Javascript:
Ver original
  1. $('input, select, textarea').focusin(function() {
  2.     var helper = $('.helper');
  3.     helper.html($(this).attr('placeholder'));
  4.     if (!helper.is(':visible')) helper.show();
  5.     else helper.hide();
  6. }).blur(function() {
  7.     $('.helper').hide();
  8. });

Saludos.
  #5 (permalink)  
Antiguo 28/05/2012, 13:52
 
Fecha de Ingreso: febrero-2008
Mensajes: 269
Antigüedad: 16 años, 1 mes
Puntos: 5
Respuesta: Seleccionando el atributo "name"

No, no. Lo que quiero es poner el texto que pongo en el javascript pero dependiendo de cual sea el input tiene que aparecer un texto u otro.

Osea que en lugar de usar el atributo id, estoy utilizando el atributo name.

Tal y como tengo en el primer script que puse, "si name = features" pongo el texto en el div. El placeholder es un tip, lo del div es una explicación así que no tienen que ver una con la otra.

Lo que quiero evitar es tener class, id, name y de todo ahí metido por eso quiero utilizar el "name" de igual forma que usaría el id, para identificar el input, select o textarea y mostrar el texto correspondiente.
  #6 (permalink)  
Antiguo 28/05/2012, 14:31
Avatar de quike88  
Fecha de Ingreso: agosto-2008
Mensajes: 471
Antigüedad: 15 años, 7 meses
Puntos: 87
Respuesta: Seleccionando el atributo "name"

Hola,

Tu problema está en el if, te bastaría con cambiar esta linea:

Código Javascript:
Ver original
  1. //MAL
  2. if($('[name="features"]')) {
  3. ...
  4. }
  5. //BIEN
  6. if($(this).is(':[name="features"]')) {
  7. ...
  8. }

Saludos.
  #7 (permalink)  
Antiguo 28/05/2012, 14:38
 
Fecha de Ingreso: febrero-2008
Mensajes: 269
Antigüedad: 16 años, 1 mes
Puntos: 5
Respuesta: Seleccionando el atributo "name"

¡Vaya tela! Entonces por qué en la documentación oficial no dice nada? ¡Yo lo estaba usando como decia ahí!

Gracias por solucionarme la duda y a GatorV tambien por interesarse ^^

Etiquetas: html, input, javascript, atributos
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 09:17.