Tuve un problema en el que escribí una función marcada () para el cambio de una casilla de verificación:
<input type="checkbox" id = "checked" onchange="checked()" />Aquí está mi javascript:
const check = document.getElementById("checkbox") const yes = document.getElementsByClassName("yes") function checked() { if (check.checked) { yes.innerHTML = "Yes" } else { yes.innerHTML = "No" } }Básicamente, quiero que el lapso con la clase de sí cambie la salida dependiendo de si la casilla de verificación está marcada o no (dice Sí o No). Sin embargo, cuando inspecciono, dice "Error de tipo: marcado no es una función en HTMLInputElement.onchange" incluso aunque mi javascript está perfectamente vinculado a mi HTML (lo verifiqué con una alerta).
¿Como puedo resolver esto?
Obtiene una casilla de verificación por checkbox de verificación de identificación, pero en su campo de entrada, coloca id="checked" que es incorrecto, por lo que debe corregir su identificación de checked a checkbox de verificación.
<input type="checkbox" id = "checkbox" onchange="checked()" /> También debe cambiar el nombre de su función de checked a otro nombre (como checkData que no es similar a los valores/funciones nativos) y luego envuelva su document.getElementById en su función
No debe usar getElementsByClassName también, porque devuelve una lista de elementos e innerHTML no funciona para ellos, por lo que debe seleccionar un elemento en particular con getElementById
function checkData() { const check = document.getElementById("checkbox") const yes = document.getElementById("yes") //need to use `getElementById` instead of `getElementsByClassName` //if `yes` element is not there, we don't need to set `innerHTML` if(!yes) { return } if (check.checked) { yes.innerHTML = "Yes" } else { yes.innerHTML = "No" } } Recuerde implementar su elemento yes de esta manera
<p id="yes"></p> //tag name is your choice Técnicamente, checked es el nombre del atributo de valor en esa entrada y no es una función, por lo que no puede usarlo como nombre de función.
Por cierto, ¡gracias a @Teemu por la sugerencia!
verificación constante = documento.getElementById("casilla de verificación")
No existe tal identificación en su código llamado "casilla de verificación". Creo que quieres:
verificación constante = documento.getElementById("verificado")
Intente dar a sus ID, nombres de función y tipos de entrada nombres únicos para que no se confundan entre sí.