Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

606
Vistas
jQuery: cómo obtener el índice de un botón de opción marcado

Recientemente me encontré con una respuesta de StackOverflow que me dio excelentes instrucciones sobre cómo obtener el valor de un botón de opción marcado usando jQuery :

 var radioVal = $("#myFormID input:radio[name='radioFieldName']:checked").val(); alert('Selected radio button value = ' + radioVal);

Ahora estoy tratando de encontrar el índice basado en cero del botón de opción marcado. Pensé que sería relativamente simple:

 var radioIdx = $("#myFormID input:radio[name='radioFieldName']:checked").index();

Sin embargo, radioIdx siempre devuelve un valor de -1 . ¿Alguna idea sobre lo que podría estar haciendo mal?

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Esto debería funcionar. Podrías hacerlo todo en una sola línea, pero lo dividí para que sea más fácil de leer:

 var radioButtons = $("#myFormID input:radio[name='radioFieldName']"); var selectedIndex = radioButtons.index(radioButtons.find(':checked'));

EDITAR: Verifique que su selector sea correcto. Desglosarlo paso a paso:

 var radioButtons = $("#myFormID input:radio[name='radioFieldName']"); // this should contain the count of all your radio buttons var totalFound = radioButtons.length; // this should contain the checked one var checkedRadioButton = radioButtons.find(':checked'); // this should get the index of the found radio button based on the list of all var selectedIndex = radioButtons.index(checkedRadioButton);

¿Qué paso no está produciendo el valor esperado en estos?

EDITAR: Para mostrar la solución final

 var radioButtons = $("#myFormID input:radio[name='radioFieldName']"); var selectedIndex = radioButtons.index(radioButtons.filter(':checked'));
over 4 years ago · Santiago Trujillo Denunciar

0

Intente usar la forma de índice que le permite especificar un elemento en una colección y devuelve su posición relativa en la colección:

 var radioIdx = $(":radio[name='radioFieldName']") .index($(":radio[name='radioFieldName']:checked"));

o la versión que encuentra el primer elemento que coincide con un selector que está en otra colección e informa su posición en la segunda colección.

 var radioIdx = $(":radio[name='radioFieldName']:checked") .index(":radio[name='radioFieldName']");
over 4 years ago · Santiago Trujillo Denunciar

0

Hay un par de opciones:

1) Enumerar a través de la lista de botones de radio (también conocido como sin el modificador :checked) y probar para ver si está marcado; si es así, tiene la identificación del elemento en el grupo.

2) La mejor manera (imo), es simplemente asociar algunos datos con cada elemento y extraer esos datos. Entonces, si le da al elemento un atributo de 'índice de datos' con el valor, puede simplemente llamar

 $('#myFormID input:radio[name='radioFieldName']:checked').data('index')

Y tener el valor.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda