0

2つのラジオボタンがあります。

<table border="0" width="500"> 
    <tr><td><?php echo form_label('Register with a Club', 'club'); ?>&nbsp;<?php echo form_radio('individual', 'club', '', 'id=club'); ?></td><td><?php echo form_label('Register as an Independent', 'independent'); ?>&nbsp;<?php echo form_radio('individual', 'independent', '', 'id=independent'); ?></td></tr>
    </table>

これは吐き出します:

<table border="0" width="500"> 

    <tr><td><label for="club">Register with a Club</label>&nbsp;<input type="radio" name="individual" value="club" id=club /></td><td><label for="independent">Register as an Independent</label>&nbsp;<input type="radio" name="individual" value="independent" id=independent /></td></tr>
    </table>

ラジオボタングループの値を警告しようとしています....試しました...

<script type="text/javascript">
$(function(){
 alert($("input[name='individual']").val());
    });
</script>

しかし、それは一度だけ「クラブ」を返します、なぜ「独立」に警告しないのですか?

4

2 に答える 2

2

実際にチェックされているラジオボタンの値を警告する必要があります。そうしないと、選択範囲の最初の要素である「クラブ」の値が常に返されます。

$(function(){ 
    $("input[name='individual']").on('change', function() {
        alert($("input[name='individual']:checked").val());
    });
});
    ​

フィドル

両方の値が必要な場合(またはグループ内にさらにラジオボタンがある場合はそれ以上)、それらを反復処理する必要があります。

$(function(){ 
    var values=[];
    $.each($('input[name="individual"]'), function(i,elm) {
        values.push(elm.value);
    });
    alert(values.join(', '));
});

フィドル

于 2012-11-07T02:03:47.840 に答える
1

コードは最初の要素の値のみを取得します。長さを取得すると、実際にはすべての入力を取得していることがわかります。

$("input[name='individual']").length

すべての値をアラートする場合は、ループする必要があります。

$("input[name='individual']").each(function() { alert( this.value ); });

現在チェックされている入力の値を取得する必要がある場合は、次のようにします。

$("input[name='individual']:checked").val()
于 2012-11-07T02:03:01.340 に答える