0

我正在动态创建单选按钮,并使用 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,但仍然只有一个单选按钮被选中。

请建议我做错了什么或我该如何完成。

4

3 回答 3

1

Temp.MyClaim对所有单选按钮使用相同的名称。这是一个单选按钮组,只能选择一个。

于 2012-09-11T11:08:06.053 回答
0
$('input[type="radio"][title^="Claim_"]').prop('checked', true);

您对所有收音机都使用相同的名称和相同的 ID,所以这会给您带来麻烦!

于 2012-09-11T11:06:28.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 回答