elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web (Moderador: #!drvy)
| | |-+  [Pregunta]: Detectar cambió en un input en especifico (JS)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Pregunta]: Detectar cambió en un input en especifico (JS)  (Leído 3,523 veces)
Leguim


Desconectado Desconectado

Mensajes: 720



Ver Perfil
[Pregunta]: Detectar cambió en un input en especifico (JS)
« en: 4 Diciembre 2019, 14:15 pm »

Buenos días,

tengo un formulario ("id_form") en el cual tengo 2 inputs uno que tiene name="username" y name="pass"

Código
  1.        $('#id_form').on('change',function() // detecto si se produjo un cambio en el formulario entero
  2.        {
  3.            if(id_form.input_username.onchange) // quiero que si el cambio se produjo en el input username
  4.            {
  5.                alert('1');
  6.            }
  7.            else if(id_form.input_pass.onchange) // quiero que si el cambio se produjo en el input pass
  8.            {
  9.                alert('2');
  10.            }
  11.        });
  12.  

Como esta el código no da errores pero tampoco sirve, no hace nada.
Probé de otras maneras pero tampoco me servían porque me daban errores, quiero hacerlo de esta manera para no tener que estar poniendo una id="" a cada campo o un onchange, es muy tedioso y prefiero hacerlo así...


En línea

MinusFour
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.529


I'm fourth.


Ver Perfil WWW
Re: [Pregunta]: Detectar cambió en un input en especifico (JS)
« Respuesta #1 en: 4 Diciembre 2019, 16:34 pm »

El elemento que dispara el evento se encuentra ubicado en la propiedad target del objeto de evento que por lo general (sino es que siempre) es pasado como primer argumento al listener.

Código
  1. $('#id_form').on('change',function(e){
  2. ...
  3. });

Puedes simplemente comparar si el target es el elemento que estás buscando:

Código
  1. $('#id_form').on('change',function(e){
  2.    if($('#input_username').is(e.target)){
  3.  
  4.    }
  5.    else if($('#input_pass').is(e.target)) {
  6.  
  7.    }
  8. });

Edit: Todavía tienes que poner un id o una clase para seleccionar esos campos. Podrías hacerlo también por indice pero es preferible poner alguna clase de identificador.


« Última modificación: 4 Diciembre 2019, 16:39 pm por MinusFour » En línea

EdePC
Moderador Global
***
Conectado Conectado

Mensajes: 2.165



Ver Perfil
Re: [Pregunta]: Detectar cambió en un input en especifico (JS)
« Respuesta #2 en: 4 Diciembre 2019, 16:52 pm »

Saludos,

- Cierto, pero él no quiere usar ID XD. En ese caso comprueba la propiedad/atributo name directamente, a mi me funciona lo siguiente:

Código
  1. <script src="jquery-3.4.1.js"></script>
  2.  
  3. <form id="id_form">
  4.  <input type="text" name="username">
  5.  <input type="password" name="pass">
  6. </form>
  7.  
  8. <script>
  9.  $("#id_form").change(function(e) {
  10.    if ( e.target.name === "username" ) {
  11.      console.log("username change");
  12.    } else if ( e.target.name === "pass" ) {
  13.      console.log("password change");
  14.    }
  15.  });
  16. </script>

- Sin embargo aclarar los ShortCuts, por ejemplo:
$(document).ready(function(){...}) es lo mismo que $(function(){...}) y
$("css_selector").on("event", function(){...}) es lo mismo que $("css_selector").event(function(){...}). En la documentación de jQuery se ve todo esto y lo normal es ver los ShortCuts ya que jQuery es para escribir menos.

- También habría que considerar de que el evento change se dispara solo cuando se pierde el foco (onblur) del elemento, en este caso el input type="text" o "password", puedes usar el código que puse antes para probarlo y ver que sucede teniendo la consola abierta al costado por supuesto.
En línea

Leguim


Desconectado Desconectado

Mensajes: 720



Ver Perfil
Re: [Pregunta]: Detectar cambió en un input en especifico (JS)
« Respuesta #3 en: 4 Diciembre 2019, 17:04 pm »

O.O WOAO lo acabo de hacer me leiste la mente jaja

Código
  1.            if($('input[name=input_email]').is(e.target))
  2.            {
  3.                alert('input_email');
  4.            }
  5.            else if($('input[name=input_password]').is(e.target))
  6.            {
  7.                alert('input_password');
  8.            }
  9.  

¡Muchas gracias a los dos!
« Última modificación: 4 Diciembre 2019, 17:05 pm por MiguelCanellas » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Una pregunta sobre el GTA V(especifico con antelacion)
Juegos y Consolas
robebugaty 2 2,571 Último mensaje 27 Septiembre 2014, 13:40 pm
por Shout
[SOLUCIONADO]Detectar si en un input escribes letras o números (ayuda)
Scripting
Biodude9456 3 2,908 Último mensaje 27 Febrero 2016, 03:33 am
por Eleкtro
[Pregunta]: Caracteres máximo en un input
Desarrollo Web
Leguim 2 3,182 Último mensaje 30 Enero 2019, 15:34 pm
por MCKSys Argentina
[Pregunta]: Input requerido
Desarrollo Web
Leguim 3 1,836 Último mensaje 28 Enero 2019, 20:27 pm
por srWhiteSkull
[Pregunta]: ¿Como eliminar una cookie en específico?
PHP
Leguim 2 2,416 Último mensaje 3 Abril 2020, 22:52 pm
por Leguim
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines