Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

605
Views
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 answers
Answer question

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 Report

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!