La sección Div no se muestra en toda la sección de botones de radio-Jquery

Me estoy encontrando con este Jquery div show() hide() problema al hacer clic en un botón de radio. He buscado en este foro y pude hacer que la función funcionara, pero no para todos los botones de opción. yo tengo n número de botones de radio y cuando un usuario hace clic en "Sí", quiero mostrar una sección div. Pero el problema con el que me encuentro es que esto funciona correctamente para el primer botón de opción, el resto no responde a los clics. Aquí está el js que estoy usando

$(document).ready(function() {

    $('#isYes').click(function() {
        var test = $(this).val();
        alert(test)
        $("div.desc").hide();
        $('#divCheck').show();

    });

    $('#isNo').click(function() {

        $('#divCheck').hide();
    });

Y mi código jsp parece

 <p>

           <td><core:out value="${obj.txt}" /> <form:radiobutton
                                            path="car[${Status.index}].carSelection"
                        value="isYes" onclick="" id="isYes" label="Yes" /> <form:radiobutton
                        path="car[${Status.index}].carSelection"
                        value="isNo" id="isNo" label="No" />
    </td>

</p>



     <div id="divCheck" class="desc({where desc is display: none;})">


                    <c:forEach items="${car.carList}" var="type"
                        varStatus="cstatus">

                        <form:checkbox path="carList[${cstatus.index}]"
                            value='${type.carName' />
                        <core:out value="${type.carName}" />
                        <br />

            </c:forEach>

            </div>

¿Por qué las casillas de verificación solo se muestran para el primer botón de opción y no para el resto?

preguntado el 03 de mayo de 12 a las 20:05

No estoy seguro de entender lo que está tratando de hacer, ¿tiene más de un elemento #isYes y #isNo en su HTML? Si es así, ese debería ser tu problema. Debe usar clases en lugar de ID. -

1 Respuestas

Como dijo alexg, si está utilizando varias identificaciones en una página, jquery solo encontrará la primera. Si lo cambia a una clase. Obtendrá un selector con cualquier número de elementos con la clase.

Esto funciona:

<input class="isYes" type="radio">
<input class="isYes" type="radio">
var totalElements = $('.isYes').length; // 2

Esto no:

<input id="isYes" type="radio">
<input id="isYes" type="radio">
var totalElements = $('#isYes').length; // 1

contestado el 03 de mayo de 12 a las 21:05

Gracias por la información. Esto ayudó. - user874722

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.