【发布时间】:2012-09-11 10:57:51
【问题描述】:
我正在动态创建单选按钮,并使用 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,但仍然只有一个单选按钮被选中。
请建议我做错了什么或者我该如何完成。
【问题讨论】:
-
你使用 linq to sql(和 textboxfor)?
-
所以如果值为True,应该检查,如果值不是True,应该....等待它....检查?看起来没有each() 有一种更简单的方法。
-
即使条件
selection == 'True'为假,为什么还要使复选框为checked?? -
即使条件选择 == 'True' 为假,我也需要将另一组单选按钮设置为假,我根据“title”属性进行区分。
标签: jquery dynamic radio-button