0

どこかでロジックが欠落しています。ラジオボタンが真か偽か知りたいです。

コンソールに表示されます。

adjunct_prof
<input type=​"radio" name=​"adjunct_prof" id=​"adjunct_prof" value=​"False" checked=​"checked">​ 
<input type=​"radio" name=​"adjunct_prof" id=​"adjunct_prof" value=​"True">​

HTML は次のとおりです。

<div id="ProfessorDiv" class="span4">
    <div class="row">
        <div class="span4">
        Are you an adjunct professor?&nbsp;&nbsp;
        <input type="radio" name="adjunct_prof" id="adjunct_prof" value="False" 
        <cfif request.adjunct_prof EQ "False">  checked="checked"</cfif> /> No 
        <input type="radio" name="adjunct_prof" id="adjunct_prof" value="True" 
        <cfif request.adjunct_prof EQ "True"> checked="checked"</cfif>  /> Yes 
        </div>
    </div>
    <div class="row">
      <div class="span4" id="ProfSpecsDiv">
        <cfinclude template="adjunct_prof.cfm">
      </div>
    </div>
</div>

スクリプトは次のとおりです。

$("input:radio[name=adjunct_prof]").click(function(){
    var value = $(this).val();
    alert(value);
    if (value = 'True') {
        $('#ProfSpecsDiv').show();
    }
    else {
        $('#ProfSpecsDiv').hide();      
    }
});

アラートは、ボタンのステータスに応じて True または False を示します。しかし、「はい」をクリックすると、divが表示されます。「いいえ」をクリックしても何も起こりません。div は引き続き表示されます。そして、開発ツールは、「表示」コードが毎回実行されることを示しています。True と 'True' をデフォルトの if (value) {.

4

2 に答える 2

2

同じ ID を複数回設定しないでください。各ボタンは要素です。代わりにクラスを使用できます。

<input type=​"radio" name=​"adjunct_prof" class=​"adjunct_prof adjunct_prof_yes" value=​"False" checked> <!-- Simply checked is valid html5 -->​ 
<input type=​"radio" name=​"adjunct_prof" class=​"adjunct_prof adjunct_prof_no" value=​"True">​

とにかくboolなので、ボックスの1つの値を確認するだけで済みます。チェックボックスの使用を検討しましたか?

$(".adjunct_prof").on('change', function(){
    if($('.adjunct_prof_yes').prop('checked')) {
        $('#ProfSpecsDiv').show();
    } else {
        $('#ProfSpecsDiv').hide();
    }
});
于 2013-07-30T21:50:26.810 に答える