2011-11-14 17 views
1

ラジオボタンには、2つの可能な値(yesまたはno)があります。 ユーザが「はい」を押すとdivが表示され、 がdivを非表示にする場合は、ラジオボタンhideとshow div jquery

私のコードがあるが、それは動作しません:事前

+0

あなたは私が思うので、これを適用してくださいし、もう一度 –

答えて

2

<script type="text/javascript"> 
        $(document).ready(function() { 
        $("div.desc").hide(); 
        $("input[name$='pain']").click(function() { 
        var test = $(this).val(); 
        $("div.desc").hide(); 
        $("#" + test).show(); 
        }); 
        }); 
       </script> 

     <div id="fieldsetInner"> 
       <fieldset class="rightInner"> 
       <legend>pain</legend> 
       <label for="pain" class="label2">do you feel pain ; </label> 
       <input name="pain" type="radio" value="yes" id="yes" checked="checked"/> Yes &nbsp; 
       <input name="pain" type="radio" value="no"/> No 

       <div id="yes" class="desc"> 
       <label for="pain-feature1-morph" class="label2">Morph : </label> 
       </div> 
      </div> 

おかげで私はこれがあなた

<input name="pain" type="radio" value="yes" id="yes"/> Yes 
    <input name="pain" type="radio" value="no" id="no" /> No 


    $('input:radio[name=pain]').click(function() { 
     if ($('#yes').attr('checked')) { 
      $('.desc').show(); 
      } else if ($('#no').attr('checked')) { 
      $('.desc').hide(); 
      } 

     }); 
+0

それをチェックし、あなたのコード内で閉じるタグが欠落しています入力のnoではhide関数を呼び出さなければなりません。 残念ながら、私のコードで何かが間違っています。 divの代わりにspanを、 とし、スクリプトにspan.descと書いても同じですか? – user494766

+0

ありがとう、私はあなたのコードを持っているので、私は頭にそれを挿入することでした。 – user494766

2

を行うことができますあなたは重複を持っていますidあなたのHTMLには、表示しようとしているdivと 'yes'ラジオボタンの両方にid 'yes'があります。 IDはドキュメント内で一意でなければなりません。

あなたのHTMLを修正したら、これは動作するはずです -

$(document).ready(function() { 
    $("input[name$='pain']").change(function() { 
     var test = $(this).val(); 
     $("div.desc").hide(); 
     if ($("div#" + test).length > 0) $("div#" + test).show(); 
    }) 
}); 

デモ - http://jsfiddle.net/mSLeA/

1

役立つことを願っています

$("input#yes").click(function() { 
    $("div.desc").show(); 
}); 
$("input#no").click(function() { 
    $("div.desc").show(); 
}); 
関連する問題