0

Radiobutton を動的に作成し、Jquery を使用してデータベースの値に基づいて適切なラジオ ボタンを選択しています。以下は、レンダリング後に生成されるサンプル コードです。

<input checked="checked" id="Claim_0" name="Temp.MyClaim" type="radio" value="True" />
                <label for="Yes">Yes</label>
                <input id="Claim_0" name="Temp.MyClaim" type="radio" value="False" />
                <label for="No">No</label>

<input id="Claim_1" name="Temp.MyClaim" type="radio" value="True" />
                <label for="Yes">Yes</label>
                <input checked="checked" id="Claim_1" name="Temp.MyClaim" type="radio" value="False" />
                <label for="No">No</label>

私はJQueryを使用して値を選択しています。以下はサンプルコードです

var j = 0;
$('input:radio[id^="Claim_"]').each(function () {

    var selection = $(this)[0].defaultChecked;
    if (selection) {                        
        if ($(this).val() == "True") {
    $("input:radio[id=Claim_" + j + "]:nth(0)").attr('checked', true)
            $('#ClaimData_' + j).show();
        }
        else {
    $("input:radio[id=Claim_" + j + "]:nth(1)").attr('checked', true)
            $('#ClaimData_' + j).hide();
        }
        j++;
    }
});

問題は、ページの最終出力で、最後のラジオ ボタンのみがチェックされていることです。各グループの ID を動的に変更しましたが、まだ 1 つのラジオしか選択されていません。

私が何を間違っているか、またはどうすればこれを行うことができるかを提案してください。

4

3 に答える 3

1

Temp.MyClaimすべてのラジオボタンに同じ名前を使用しています。これはラジオボタン グループであり、選択できるのは 1 つだけです。

于 2012-09-11T11:08:06.053 に答える
0

このように編集

$('input:radio').each(function () {

var selection = $(this).val();
if (selection == 'True') {
    $(this).attr("checked", "checked");
}
else {
    $(this).attr("checked", "checked");        
}
});
于 2012-09-11T11:00:52.550 に答える
0
$('input[type="radio"][title^="Claim_"]').prop('checked', true);

すべてのラジオに同じ名前と同じ ID を使用しているため、問題が発生します。

于 2012-09-11T11:06:28.053 に答える