2012-05-03 8 views
0

ラジオボタンをクリックすると、このJquery div show()hide()に問題が発生しています。私はこのフォーラムを検索し、すべてのラジオボタンでは機能しませんでしたが、機能を得ることができました。私はnラジオボタンの数を持っていて、ユーザーが "はい"をクリックすると、divセクションを表示したいと思います。しかし、私が実行している問題は、これが最初のラジオボタンに対して正しく機能し、残りがクリックに反応しないということです。ここで私はすべてのラジオボタンセクションにDivセクションが表示されない - Jquery

$(document).ready(function() { 

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

    }); 

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

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

を使用していますjsのですそして、私の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> 

のように見えるのはなぜチェックボックスは、最初のラジオボタンのためではなく、残りのために表示されていますか?

+1

はわからない私は、あなたが何をしようとして理解し、あなたのHTML内に複数の#isYesと#isNo要素を持っています?もしそうなら、それがあなたの問題であるはずです。あなたはIDの代わりにクラスを使うべきです。 – alexg

答えて

0

alexgが述べているように、ページ上に複数のidを使用している場合、jqueryは最初のものだけを見つけます。それをクラスに変更した場合。あなたはクラスに任意の数の要素を持つセレクタを返すでしょう。

この作品:

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

情報ありがとうございました。これが助けになりました。 – user874722

関連する問題