Tengo una función que split el value de input en el space y recorrí para buscarlos en un número, pero solo se muestra (marca) el último valor, no el otro anterior.
Una solución puede ser eliminar de else manera, funcionó bien, pero de esta manera, al cambiar el valor, el número checked permanece intacto (también se muestran los últimos resultados buscados).
let SearchingNumbers_btn = document.getElementById('SearchingNumbers_btn'); SearchingNumbers_btn.addEventListener("click", refree); function refree() { var reader = document.getElementsByClassName("checkbox_inputs") for (let i = 0; i < reader.length; i++) { var readerText = reader[i].value var readerText1 = readerText.trim() var reed = document.getElementById("allNumbers").value; var reed1 = reed.trim() var myDiffValues = reed1.split(" "); document.getElementById("demo").innerHTML = myDiffValues if (reed != '') { for (var item of myDiffValues) { if (readerText1.indexOf(item) > -1) { reader[i].checked = true; } else { reader[i].checked = false; } } } else { reader[i].checked = false; } } } <input type="text" name="" id="allNumbers" /> <button id="SearchingNumbers_btn">Select all</button> <br><br> <br> <input class="checkbox_inputs" type="checkbox" name="sending" class="Sending_JS" value="2528" data-u-mobile="2528" /> <span>2528</span> <input class="checkbox_inputs" type="checkbox" name="sending" class="Sending_JS" value="2529" data-u-mobile="2529" /> <span>2529</span> <input class="checkbox_inputs" type="checkbox" name="sending" class="Sending_JS" value="2527" data-u-mobile="2527" /> <span>2527</span> <div id="demo"></div>Un comportamiento extraño que muestra es que cuando se ingresa mucho espacio en la entrada, todas las casillas de verificación se marcan
Puedes hacerlo mucho más fácil :)
checkbox_inputs ).allNumbers ) y puede recortar y dividir en una línea.checked si la lista allNumbers incluye el valor esperado. false caso contrario. let SearchingNumbers_btn = document.getElementById('SearchingNumbers_btn'); SearchingNumbers_btn.addEventListener("click", refree); function refree() { var inputs = document.getElementsByClassName("checkbox_inputs"); var allNumbers = document.getElementById("allNumbers").value.trim().split(" "); document.getElementById("demo").innerHTML = allNumbers for (let i = 0; i < inputs.length; i++) { inputs[i].checked = allNumbers.includes(inputs[i].value); } } <input type="text" name="" id="allNumbers" /> <button id="SearchingNumbers_btn">Select all</button> <br><br> <br> <input class="checkbox_inputs" type="checkbox" name="sending" class="Sending_JS" value="2528" data-u-mobile="2528" /> <span>2528</span> <input class="checkbox_inputs" type="checkbox" name="sending" class="Sending_JS" value="2529" data-u-mobile="2529" /> <span>2529</span> <input class="checkbox_inputs" type="checkbox" name="sending" class="Sending_JS" value="2527" data-u-mobile="2527" /> <span>2527</span> <div id="demo"></div>