Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

614
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda