Tengo una lista de muchos seleccionados o ingresados y quiero obtener la identificación de cada uno de ellos que tiene "requerido = verdadero" aquí está el comienzo de mi código
function getRequiredFieldsId(contenerId) { // Detection of all select fields let objFields = document.getElementById(contenerId).getElementsByTagName('select'); let q=1; }Tal vez necesito hacer un forEach pero realmente no sé cómo hacerlo correctamente.
puede usar .querySelectorAll("[requerido]") para obtener todos los elementos requeridos
entonces, si solo quieres una identificación, puedes usar el mapa
[...requiredElements].map(element => element.id); function getRequiredFieldsId(contenerId) { let requiredElements = document.getElementById(contenerId).querySelectorAll("[required]"); requiredElementsId = [...requiredElements].map(element => element.id); console.log(requiredElementsId); } getRequiredFieldsId('container1'); <div id="container1"> <input id="test1"/> <input id="test2" required/> <input id="test3" required/> </div> <div id="container2"> <input id="test1" required/> <input id="test2"/> <input id="test3"/> </div>getElementsByTagName() devuelve una matriz como una colección. Por lo tanto, tendrá que convertirlo en una matriz usando ... (operador de propagación), para facilitar la iteración.
Después de eso, verificar la propiedad required es todo lo que tiene que hacer.
Desarrollando tu código:
let items = document.getElementsByTagName('select'); let reqItems = []; [...items].forEach(x => { if(x.required) reqItems.push(x); }); console.log(reqItems); <select name="cars" id="cars" required> <option value="volvo">Volvo</option> <option value="saab">Saab</option> <option value="mercedes">Mercedes</option> <option value="audi">Audi</option> </select> <select name="cars2" id="cars2" required> <option value="volvo">Volvo</option> <option value="saab">Saab</option> <option value="mercedes">Mercedes</option> <option value="audi">Audi</option> </select> <select name="cars3" id="cars3"> <option value="volvo">Volvo</option> <option value="saab">Saab</option> <option value="mercedes">Mercedes</option> <option value="audi">Audi</option> </select> <select name="cars4" id="cars4" required> <option value="volvo">Volvo</option> <option value="saab">Saab</option> <option value="mercedes">Mercedes</option> <option value="audi">Audi</option> </select>Puede usar la función .querySelector para recuperar elementos DOM condicionales. P.ej
let elems = document.querySelectorAll('select[required=true],input[required=true]'); Con esto tendrás todos los elementos que cumplen esta condición. Con la .map function recibirás todos los ids.
let ids = [...elems].map(item => element.id);