Estoy tratando de obtener valores de las casillas de verificación por su nombre, y verifico si estos valores existen en otra matriz, si existe, por lo que los valores que existen, se vuelven (marcados) presionando un botón, uso jquery para eso, y probé un muchas maneras, pero todas las casillas de verificación siguen sin marcar, aunque pasé sus valores en la declaración if.
Casillas de verificación:
<input id="contactsCheckbox" name="contactsCheckboxEdit" type="checkbox" value="1"> <input id="contactsCheckbox" name="contactsCheckboxEdit" type="checkbox" value="2"> <input id="contactsCheckbox" name="contactsCheckboxEdit" type="checkbox" value="3"> <input id="contactsCheckbox" name="contactsCheckboxEdit" type="checkbox" value="4"> <input id="contactsCheckbox" name="contactsCheckboxEdit" type="checkbox" value="5">secuencia de comandos (jquery):
var array = [1,2,3]; $('input[name="contactsCheckboxEdit"]').each(function() { if(jQuery.inArray(this.value, array) !== -1) { this.checked = true; } });se supone que las entradas que tienen valores (1,2,3) se vuelven (marcadas) pero todas siguen (sin marcar). alguna ayuda por favor?
Puede hacerlo con un bucle for al verificar el valor en la matriz usando la función
var arrayCheck = [1,2,3]; $('input[name="contactsCheckboxEdit"]').each(function() { let inputValue = $(this).val(); if (checkArrayValue(inputValue, arrayCheck) == 'Exist') { $(this).prop('checked', true); } }); function checkArrayValue(value, array) { var result = "Doesn't exist"; for(var i=0; i < array.length; i++) { var name = array[i]; if (name == value) { result = 'Exist'; break; } } return result; } <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <input id="contactsCheckbox" name="contactsCheckboxEdit" type="checkbox" value="1"> <input id="contactsCheckbox" name="contactsCheckboxEdit" type="checkbox" value="2"> <input id="contactsCheckbox" name="contactsCheckboxEdit" type="checkbox" value="3"> <input id="contactsCheckbox" name="contactsCheckboxEdit" type="checkbox" value="4"> <input id="contactsCheckbox" name="contactsCheckboxEdit" type="checkbox" value="5">JQuery está desactualizado y ya no se recomienda hoy en día, var tampoco se recomienda más, a continuación hice una solución en JS puro:
const list = [1, 2, 3]; for (const checkbox of document.querySelectorAll("#contactsCheckbox[name=contactsCheckboxEdit]")) { if (list.includes(Number(checkbox.value))) { checkbox.checked = true; } } <input id="contactsCheckbox" name="contactsCheckboxEdit" type="checkbox" value="1"> <input id="contactsCheckbox" name="contactsCheckboxEdit" type="checkbox" value="2"> <input id="contactsCheckbox" name="contactsCheckboxEdit" type="checkbox" value="3"> <input id="contactsCheckbox" name="contactsCheckboxEdit" type="checkbox" value="4"> <input id="contactsCheckbox" name="contactsCheckboxEdit" type="checkbox" value="5">Aprende JS moderno en:
Sé programación: https://exploringjs.com/impatient-js/
No sé programación: https://javascript.info/
Todo en uno: https://phoenix35.js.org/