Actualmente me enfrento a un problema en el que no puedo configurar un cuadro de entrada para que permanezca marcado después de una actualización. He almacenado los valores en el almacenamiento local, aunque el valor se almacena en el almacenamiento local; la casilla de verificación no permanece marcada. ¡Por favor ayúdame en esto! Gracias
Aquí está el código html:
<div style="color: #005e95"> <input type="checkbox" id="checkboxFullDownload" data-dojo-attach-event="onClick: _test" style="cursor: pointer;" > Full Download </div>Aquí está el código JS:
_test: function(){ let checkBox = document.getElementById("checkboxFullDownload") if(localStorage.getItem(`${xmlTitle} ID:${this.item._id}`) === "AllowFullDownload"){ checkBox.setAttribute("checked",true) console.log("set to true") } if(checkBox.checked){ console.log("Checked") localStorage.setItem(`${xmlTitle} ID:${this.item._id}`,"AllowFullDownload") checkBox.checked = true; } if(!checkBox.checked){ console.log("Unchecked") localStorage.removeItem(`${xmlTitle} ID:${this.item._id}`) checkBox.setAttribute("checked",false) } }Si desea marcar la casilla de verificación en la carga de la página, entonces localStorage.getItem() debe estar fuera del alcance de cualquier función que se ejecute en ciertos eventos.
let checkBox = document.getElementById("checkboxFullDownload"); _test: function() { if (checkBox.checked) { console.log("Checked"); localStorage.setItem(`${xmlTitle} ID:${this.item._id}`, "AllowFullDownload"); checkBox.checked = true; } if (!checkBox.checked) { console.log("Unchecked"); localStorage.removeItem(`${xmlTitle} ID:${this.item._id}`); checkBox.checked = false; } } if (localStorage.getItem(`${xmlTitle} ID:${_test.item._id}`) === "AllowFullDownload") { checkBox.checked = true; console.log("set to true"); }Reemplace checkBox.setAttribute("checked",true) con checkBox.checked = true