2016-09-15 16 views
0

ラジオボタンがいくつかありますが、そのうちの1つは「その他」ボタンです。ユーザーが「その他」をクリックすると、詳細情報を求めるテキストボックスが表示されます。ラジオボタンをクリックしてイベントをトリガーする

<div class="radio"> 
    <label><input type="radio" name="optradio">Friend</label> 
    </div> 
    <div class="radio"> 
    <label><input type="radio" name="optradio"> Worked together </label> 
    </div> 
    <div class="radio"> 
    <label><input type="radio" name="optradio"> Studied together</label> 
    </div> 
    <div class="radio"> 
    <label><input type="radio" name="other-radio" id="connection-invite-other-radio"> Other </label> 
    </div> 

    <div class="form-group" id="connection-invite-other"> 

    <input type="text" class="form-control" > 
    </div> 

JS:

$(document).ready(function(){ 


    if($('#connection-invite-other-radio').is(':checked')) {   
     $('#connection-invite-other').show(); 
     console.log("hi"); 
    } 

    else { 
     $('#connection-invite-other').hide(); 
    } 

}); 

しかしこれは動作していないこれは私のHTMLとJSです。私が間違ったことをしているかどうか理解してください。ありがとう!

+0

クリックに応じて、あなたは、クリックハンドラ関数の内部で* X *配置する必要があります* X *あなたがしたい場合は - あなたの場合/他の既存のは、一度*走ります*ドキュメントが最初に読み込まれるとき。 (他のラジオボタンの名前属性が違うのはなぜですか?他のラジオボタンと同じグループに属していないのでしょうか?) – nnnnnn

+0

良い点、ありがとう、私はそれを変更します。 –

答えて

2
  1. radioは、あなたのケースoptradioには、同じnameを持っている必要があります。
  2. すべてのradio要素にchangeイベントリスナーを使用する必要があります。

$(document).ready(function() { 
 
    $('input[type=radio]').change(function() { 
 
    if ($('#connection-invite-other-radio').is(':checked')) { 
 
     $('#connection-invite-other').show(); 
 
    } else { 
 
     $('#connection-invite-other').hide(); 
 
    } 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<div class="radio"> 
 
    <label> 
 
    <input type="radio" name="optradio">Friend</label> 
 
</div> 
 
<div class="radio"> 
 
    <label> 
 
    <input type="radio" name="optradio">Worked together</label> 
 
</div> 
 
<div class="radio"> 
 
    <label> 
 
    <input type="radio" name="optradio">Studied together</label> 
 
</div> 
 
<div class="radio"> 
 
    <label> 
 
    <input type="radio" name="optradio" id="connection-invite-other-radio">Other</label> 
 
</div> 
 
<div class="form-group" id="connection-invite-other"> 
 
    <input type="text" class="form-control"> 
 
</div>

+0

ありがとうございます!これは完璧に動作します:D –

0

changeラジオボタンのイベントに電話する必要があります。hide divを表示してください。

$(document).ready(function(){ 

    $('#connection-invite-other-radio').change(function(){ 
    if($(this).is(':checked')) {   
     $('#connection-invite-other').show(); 
     console.log("hi"); 
    } 

    else { 
     $('#connection-invite-other').hide(); 
    } 
    });  
}); 
関連する問題