0

私は4つのラジオボタンを持っています。最後のラジオ ボタンを選択すると、1 つのテキスト ボックスが表示されます。このシナリオは jquery で処理しました。ここで、ユーザーがこのテキストボックスを取得した場合、ユーザーが最後のラジオボタンをチェックした場合、テキストを提供する必要があることを意味するように検証したいと思います.しかし、私の場合、ラジオボタンのいずれかをチェックすると、提供するように指示されますいくつかのテキスト。コードは次のようになります。

    <input type="radio" name="bus_plan" id="smallBtn" value="1" />1
     <input type="radio" name="bus_plan" id="smallBtn" value="2" />2
     <input type="radio" name="bus_plan" id="smallBtn" value="3" />3
     <input type="radio" name="bus_plan" id="smallBtn" value="Promotional" />
      <span class="plantxt"><a style="cursor:pointer;" onclick="popup('popUpDiv')">Promotional Plan</a> (Please enter a promotional code)</span>
    <div class="reg-line" id="pr_code_id" style="display:none">
       <div class="reg-linea" align="left">Promotional Code: <sup>*</sup></div>
       <input type="text" name="bus_prcode" id="bus_prcode" class="reg-line-input" value="Promotional Code" onblur="if(this.value=='') this.value='Promotional Code'" onClick="if(this.value==this.defaultValue) this.value='';" />
       <br />
       <div>
            <div id="promotionalbox" style="display:none;font-size:13px;clear:both"></div>    
       </div>
</div>
<script type="text/javascript" src="js/jquery-1.7.2.js"></script>
<script type="text/javascript">
$(document).ready(function(){     
    $("input:radio[name=bus_plan]").click(function(){  
        var values = $(this).val();
        if(values == 'Promotional'){
            $('#pr_code_id').show();
        }else{
            $('#pr_code_id').hide();    
        }
    }); 
}); 
</script>

そしてjsで値を警告するとdocument.getElementById('bus_prcode').value、常にプロモーションコードが表示されます。これは最後のラジオボタンの値のみです。

4

2 に答える 2

1

あなたのコードは、この問題の根源である少し混乱しています。ID ごとに 1 つの要素であることを忘れないでください。

また、jQuery .is() を見ると役立つ場合があります。次に例を示します。

$('input[value="Promotional"]').is(':checked')

nb上記はお勧めしません。最初に適切な方法で識別子を使用する必要があります。

また、Chrome を使用している場合、コードが正常に機能することにも注意してください。ここで例を参照してください(私があなたのために拡張しました):http://jsbin.com/ofujal/3/

于 2012-09-07T18:15:01.967 に答える
0

同じ ID を持つ要素 (ラジオ ボタン) を持つべきではありません。document.getElementById('bus_prcode')また、ラジオボタンではなく、実行してテキストボックスを取得しています。最後のラジオ ボタンに一意の ID (例: btnPromotional) を付けてから、クリックをバインドする必要があります。

$("#btnPromotional").click(...)
于 2012-09-07T18:08:00.817 に答える