let inputs = userA[username].userAchkData;
  inputs.forEach(function(input){ 
    console.log(input);
        document.getElementById(input.id).checked = input.checked; 
    });
  }

Arriba está el código relevante; en lugar de configurarlo para que se verifique en el HTML o similar, realmente necesito simular un .click() en él para la verificación real para recibir mis datos.

Lo anterior está marcando la casilla, visualmente, pero no en realidad, necesito hacerlo a través de un click().

El inicio de sesión de mi consola en input anterior se muestra como el siguiente, es decir:

{id: "slz1", checked: false}
{id: "slz2", checked: true}
{id: "slz3", checked: false}

..........................

¿Cómo puedo reescribir en mi forEach para hacer clic en los checked: true s encontrados?

-2
doc holiday 20 feb. 2020 a las 22:07

2 respuestas

La mejor respuesta

Puede verificar si el objeto de entrada está marcado con un simple if y luego, en caso afirmativo, llame al .click() en el elemento.

Nota : al hacer clic en clic puede eliminar la parte que marca el elemento como marcado, ya que el clic lo manejará (se marcará si no está marcado y desmarcará si ya está marcado)

let inputs = [{ id: "a", checked: true}, { id: "b", checked: false}]

inputs.forEach(function(input) {
  if (input.checked) {
    var inputElem = document.getElementById(input.id)
    inputElem.click()
  }
});

function clickListenerExample() {
  console.log("click called")
}
<input type='checkbox' id="a" onclick='clickListenerExample()' />
<input type='checkbox' id="b" onclick='clickListenerExample()' />
1
Calvin Nunes 20 feb. 2020 a las 19:20

Puede probar https://developer.mozilla.org/en -US / docs / Web / API / HTMLElement / click

    let inputs = [{id:'one'}];
    inputs.forEach(function(input){ 
        console.log(input);
        document.getElementById(input.id).click(); 
    });
<input type="checkbox" id="one"  />
0
luckyape 20 feb. 2020 a las 19:28