0

show() hide()ラジオボタンをクリックすると、このJquerydivの問題が発生します。このフォーラムを検索して機能を動作させることができましたが、すべてのラジオボタンが機能するわけではありません。n個のラジオボタンがあり、ユーザーが「はい」をクリックしたときに、divセクションを表示したいと思います。しかし、私が遭遇している問題は、これが最初のラジオボタンで正しく機能し、残りはクリックに応答しないことです。これが私が使っているjsです

$(document).ready(function() {

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

    });

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

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

そして私のjspコードは次のようになります

 <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>

チェックボックスが最初のラジオボタンにのみ表示され、残りのボタンには表示されないのはなぜですか?

4

1 に答える 1

0

alexgが述べたように、ページで複数のIDを使用している場合、jqueryは最初のIDのみを検索します。クラスに変更した場合。クラスの要素をいくつでも含むセレクターが返されます。

これは動作します:

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

これはありません:

<input id="isYes" type="radio">
<input id="isYes" type="radio">
var totalElements = $('#isYes').length; // 1
于 2012-05-03T20:24:54.333 に答える