¡Buenas noches! Estoy desarrollando un proyecto de estudio y tenía muchas ganas de hacer la validación del campo de contraseña y la validación del campo confirmSenha. La idea es que cuando el usuario ingrese una contraseña diferente, se devuelva un mensaje diciendo que las contraseñas no coinciden. A continuación se muestra el alcance de mi código.
function validarPasswordConfirm(password, confirmPassword) { var typedpassword = document.getElementsByName('password').value; var confirmTypedPassword = document.getElementsByName('passwordConfirm').value; if(typedpassword !== confirmTypedPassword) { return { value: false, text: 'Passwords are not the same.' } } else { return { value: true, text: '' } } }Estoy tratando de validar el campo de contraseña con el campo confirmpassword
La función getElementsByName devuelve una matriz, por lo que no puede acceder a la propiedad de valor de esa manera.
Recomiendo usar getElementById en su lugar.
Noté algunos problemas con tu código.
En primer lugar, var ya no se usa ( vea por qué ). Deberías usar una alternativa.
Las alternativas para var están a continuación.
let - Use esto para las variables que se pueden cambiar.const : use esto para las variables que no se pueden cambiar (constante). En segundo lugar, getElementsByName() devuelve unaNodeList , que es iterable (como una array ). Esto significa que .value no está undefined en una NodeList .
Para solucionarlo, cambie su código a continuación.
const typedPassword = document.querySelector("#password").value; const confirmTypedPassword = document.querySelector("#passwordConfirm").value;