es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Manejo de eventos dentro del diálogo de jQuery.

Tengo un diálogo de JQuery para permitir al usuario cambiar su contraseña. Todo funciona bien. Verifico que las dos contraseñas sean iguales y que la nueva contraseña cumpla con mis estándares mínimos; y envío una llamada Ajax cuando se presiona el botón ‘guardar’ para insertar la nueva contraseña en mi base de datos.

Me gustaría agregar un medidor de fortaleza mientras se ingresa la contraseña, por lo que necesito un controlador de eventos ‘keyup’ u otro similar para que se verifique la contraseña a medida que se escribe cada carácter. Parece que, debido a que el elemento que quiero verificar está dentro del diálogo (que se crea sobre la marcha), mi script

$("#save_value").keyup(function(){
   console.log("keyup");
});

no “ve” el elemento #save_value porque no está presente cuando se carga la página. Intenté agregarlo a la página base, pero supongo que debido a que se sobrescribe, incluso con la misma identificación, es invisible para la función anterior. He intentado colocar el código en diferentes lugares sin éxito. No puedo ver cómo agregarlo dentro de la función del diálogo.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Solución para agregar un controlador de eventos de keyup a un campo de entrada dentro de un diálogo de jQuery

    Para agregar un controlador de eventos de keyup a un campo de entrada dentro de un diálogo de jQuery, necesitas usar el método on para adjuntar el controlador de eventos a un elemento de nivel superior que existe cuando se carga la página, y luego delegarlo al campo de entrada usando un selector.

    Suponiendo que el campo de entrada que quieres verificar está dentro de un div con el id “myDialog”, tu código debería verse así:

    $(document).on("keyup", "#myDialog #save_value", function() {
        // tu código para verificar la fortaleza de la contraseña
    });
    

    Este código adjunta un controlador de eventos de keyup al objeto document, y lo delega al campo de entrada con el id “save_value” dentro del div con el id “myDialog” usando un selector. De esta manera, el controlador de eventos funcionará incluso si el campo de entrada se crea dinámicamente dentro del diálogo.

    Puedes reemplazar el comentario con tu propio código para verificar la fortaleza de la contraseña, y se ejecutará cada vez que se presione una tecla dentro del campo de entrada.

    Asegúrate de reemplazar “myDialog” y “save_value” con los ids reales de tu diálogo y campo de entrada, respectivamente.

    ¡Espero que esto te ayude!

Comments are closed.