Tengo un cuadro de diálogo de JQuery para permitir que el usuario cambie su contraseña. Todo eso funciona bien. Verifico que las dos contraseñas sean iguales y que la nueva contraseña cumpla con mis estándares mínimos; y enviar 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 fuerza a medida que se ingresa la contraseña , por lo que necesito un controlador de eventos 'keyup', o similar, para que la contraseña se verifique a medida que se escribe cada carácter. Parece que, debido a que la entrada que quiero verificar está dentro del diálogo (que se crea sobre la marcha), mi secuencia de comandos
$("#save_value").keyup(function(){ console.log("keyup"); });no está 'viendo' el elemento #save_value porque no está allí 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 de diálogo.
Lo que quieres hacer es usar la delegación de eventos . Debe hacerse de la siguiente manera:
$(document).on('keyup','#save_value',function(){ })Así es como se realiza el manejo de eventos para elementos dinámicos.
Encontré una forma adicional yo mismo
Agregar
document.getElementById("save_value").addEventListener("keyup", pwdMeter);después de llamar al widget de diálogo