1

はい/いいえラジオボタンで選択した回答に基づいて、フィールドセットを表示または非表示にしようとしています。対応する YES/NO ラジオ ボタンに基づいて表示または非表示にする必要がある複数のフォーム要素があります。しかし、以下のコードは私にとってはうまくいきません。誰かがこの問題を解決するのを手伝ってくれますか?

<!-- My Form Element  -->

<form>
<fieldset id="question">
  <legend>This is my question</legend>
  <label for="answerYes">Yes</label>
  <input name="answer" class="myradio" type="radio" value="1" />
  <label for="answerNo">No</label>
  <input name="answer" class="myradio" type="radio" value="0" />
</fieldset>

<fieldset class="subQuestion">
  <legend>This is my question</legend>
  <label for="answerYes">Yes</label>
  <input name="answer" class="subradio" type="radio" value="1" />
  <label for="answerNo">No</label>
  <input name="answer" class="subradio" type="radio" value="0" />
</fieldset>

</form>


// Jquery to show or hide subQuestion

$(document).ready(function(){
  // do your checks of the radio buttons here and show/hide what you want to
  $(".subQuestion").hide();

  $(document).on('click', '.myradio' , function() {
         if ($(this.value).length > 0){ 
            $(".subQuestion").show();           
         }
         else {
            $(".subQuestion").hide();           
         }       
    })

});
4

5 に答える 5

4

値プロパティの長さを確認しています。これは1(値が00 と であるため1)どちらの場合も、値がより大きいことを確認する必要があります。0

$(document).ready(function(){
  // do your checks of the radio buttons here and show/hide what you want to
  $(".subQuestion").hide();

  $(document).on('click', '.myradio' , function() {
         if (this.value > 0){ 
            $(".subQuestion").show();           
         }
         else {
            $(".subQuestion").hide();           
         }       
    })

});

デモ:フィドル

于 2013-09-13T05:11:54.387 に答える
1

これを試して

$(document).ready(function(){

    $(".subQuestion").hide();

     $('#question input[type="radio"]').click(function(){
        if (this.value == 1){ 
            $(".subQuestion").show();           
        } else {
            $(".subQuestion").hide();           
        }       
    })

});
于 2013-09-13T07:22:15.533 に答える
0

試してみてくださいthis。これは役に立ちます。この行のコードの問題で$(this.value).length > 0)は、これは構文エラーであり、クリックされたラジオ ボタンの値を一致させるのが困難です。

$(".subQuestion").hide();
  $('input[type=radio]').change(function() {
         if ($(this).val()== 0){ 
            $(".subQuestion").show();           
         }
         else {
            $(".subQuestion").hide();           
         }       
  });
于 2013-09-13T15:20:43.973 に答える
0

$使用するために前に必要はありませんthis.value...そしてその長さではなく値自体をチェックします...

これ

if ($(this.value).length > 0){ 

 する必要があります

if (this.value > 0){ //using DOM check if value is greter than 0

また

if ($(this).val()> 0){  //using jquery

あなたの最終的なコードは

$(document).ready(function(){
// do your checks of the radio buttons here and show/hide what you want to
$(".subQuestion").hide();

 $(document).on('click', '.myradio' , function() {
     if (this.value > 0){ 
        $(".subQuestion").show();           
     }
     else {
        $(".subQuestion").hide();           
     }       
  })

});
于 2013-09-13T05:09:37.157 に答える