JQuery - Problema con $this

 
Vista:
sin imagen de perfil

Problema con $this

Publicado por anonymous (2 intervenciones) el 19/06/2020 13:42:35
Hola a todos soy nuevo en el foro, no estoy muy puesto en JQUERY. Bueno lo que quiero hacer es cambia el color a una 'label' que esta dos posiciones por encima. El cambio de color se hace al hacer keydown en un imput. Os pongo lo que quiero hacer:

1
2
3
$(this).keydown(function(e) {
    $(this).prev().prev('label').css('color', 'green');
});

Claro si en lugar de $this dentro de la funcion pongo el id, o clase de la label funciona. Pero tengo 3 inputs con su correspondiente label. Quiero que cada input solo modifique su label.

Se agradece cualquier ayuda
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de joel
Val: 222
Plata
Ha mantenido su posición en JQuery (en relación al último mes)
Gráfica de JQuery

Problema con $this

Publicado por joel (58 intervenciones) el 19/06/2020 15:16:25
a simple vista parece que este bien... puedes mostrar el código de HTML, para poder probarlo?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Problema con $this

Publicado por anonymous (2 intervenciones) el 19/06/2020 16:02:26
Esto es el HTML, esta construido con PHP:

1
2
echo'<label '.ValidoForm::validateField("nick", $missingFields).' for="nick">Introduce nombre de usuario:</label><span class="obligatorio"><img src="../img/obligado.png" alt="campo obligatorio" title="obligatorio"></span>';
    echo'<input type="text" name="nick" id="nick" autofocus placeholder="Tú nombre usuario maximo 25 caracteres" maxlength="25" value='"} echo ">";

Como esto hay dos labels mas.
Entonces asi no funciona :
1
2
3
$(this).keydown(function(e) {
    $(this).prev().prev('label').css('color', 'green');
});

1
2
3
4
5
Asi funciona
$(this).keydown(function() {
    $("label[for='nick']").css('color', 'green');
 
});

Pero mi intención es que independientemente lalabrl sea nick,nombre,apellidos sea pulsada cualquiera de ellas cambie el CSS suyo.Vamos un metodo para las tres labels. Por eso quiero usar el $this dentro la funcion.

Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de joel
Val: 222
Plata
Ha mantenido su posición en JQuery (en relación al último mes)
Gráfica de JQuery

Problema con $this

Publicado por joel (58 intervenciones) el 19/06/2020 19:45:36
He intentado probar el código, pero no me funciona, porque tu haces:
1
$(this).keydown(function() { ...

Pero que es ese $(this)?? a que hace referencia?



Esto si que funciona!!!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<!DOCTYPE html>
<html>
<head>
</head>
 
<body>
 
    <input type="text" name="nick1" value="xxxxxxx">
    <input type="text" name="nick2" value="xxxxxxx">
 
</body>
 
</html>
 
<script src="https://code.jquery.com/jquery-latest.js"></script>
<script>
$("input").keydown(function() {
    $(this).css('color', 'green');
});
</script>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Problema con $this

Publicado por gatoher (1 intervención) el 20/06/2020 17:04:54
Perfecto !!! Muchas gracias Joel.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar