Estoy tratando de ver si se toma algún cuadro de selección, con jquery, luego obtengo su identificación de eso, tengo varios cuadros con el mismo nombre pero una identificación diferente después, estos se generan a través de php. Ex. number1 ej. número + entero.
Me gustaría verificar/registrar un evento donde al hacer clic en cualquier cuadro de selección, la identificación se toma y se coloca en una variable para su posterior manipulación.
algo así como
if ($('select').clicked) { var sID = $('select').getID(); // use id to see which selectbox has been clicked. }Lo anterior debe suceder dinámicamente, por ejemplo. no conocemos el cuadro de selección, por lo que necesitamos un evento para verificar si se ha hecho clic en CUALQUIER selección, luego tomar su ID.
Tengo alrededor de 20 cuadros de selección y no quiero hacer una verificación individual para ellos, ya que ocupa demasiado espacio y podrían aparecer más cuadros de selección en el futuro.
PD: ¿es esto posible?
En realidad, es bastante fácil con jQuery. Use el método on() para adjuntar un controlador de clic en cada selección y tome el clic actual usando $(this) .
$(document).ready(function(){ $('select').on('click',function(){ console.log($(this).attr('id')); }); }); <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <select id="s1"> <option>1</option> </select> <select id="s2"> <option>1</option> </select> <select id="s3"> <option>1</option> </select>La variable se sobrescribe en cada evento de "entrada", por lo que es básicamente una alerta de cuál fue el último <select> que usó el usuario. No se activará con solo hacer clic, el usuario debe seleccionar un valor y, si se selecciona el mismo valor que antes, tampoco se activará.
Los detalles se comentan en el ejemplo a continuación.
// Utility function for demo const log = data => console.log(JSON.stringify(data)); // Reference the form const form = document.forms[0]; // Register input event to form form.oninput = xIds; /* If you just want the last select user has used just declare a variable */ let x; // Event handler function xIds(e) { /* The select user is picking a value from */ const active = e.target; /* If the select has the name 'x'... ...assign active id to variable x. */ if (active.name === 'x') { x = active.id; log(x); } } .as-console-row::after { width: 0; font-size: 0; } .as-console-row-code { width: 100%; word-break: break-word; } .as-console-wrapper { min-height: 100%; max-width: 50%; margin-left: 50%; } <form> <select id='x1' name='x'> <option selected disabled>Select an option</option> <option>0</option> <option>1</option> </select><br> <select id='x2' name='x'> <option selected disabled>Select an option</option> <option>0</option> <option>1</option> </select><br> <select id='x3' name='x'> <option selected disabled>Select an option</option> <option>0</option> <option>1</option> </select><br> <select id='x4' name='x'> <option selected disabled>Select an option</option> <option>0</option> <option>1</option> </select><br> <select id='x5' name='x'> <option selected disabled>Select an option</option> <option>0</option> <option>1</option> </select> </form>Puedes hacerlo en jQuery. primero debe agregar un oyente en el evento de cambio para todos los cuadros de selección
por ejemplo:
$('select').change(function(){ var sID = $(this).attr('id'); }) or you can also use $('select').on('click',function(){ var sID = $(this).attr('id'); }) })