我的Html代码如下所示。但是总是选中最终选项按钮作为选中的一个。如何修复此问题?
<div id="employee" style="margin: 7px 0;">
<div>
<input id="james-johnson" type="radio" name="employee" value="james-johnson" checked="checked"><label for="james-johnson">James Johnson</label>
</div>
<div>
<input id="boss-hog" type="radio" name="employee" value="boss-hog" checked="unchecked"><label for="boss-hog">Boss Hog</label>
</div>
<div>
<input id="jake-sanders" type="radio" name="employee" value="jake-sanders" checked="unchecked"><label for="jake-sanders">Jake Sanders</label>
</div>
<div>
<input id="dawn" type="radio" name="employee" value="dawn" checked="unchecked"><label for="dawn">Dawn</label>
</div>
</div>
ASPX代码如下
<div id="employee" style="margin: 7px 0;">
<% foreach (var employee in Model.Provider.Employees)
{ %><div>
<input id="<%: employee.Key %>"
type="radio" name="employee" value="<%: employee.Key %>" checked="<%:employee.IsEmployeeSelected ?? "unchecked" %>" /><label for="<%: employee.Key %>"><%: employee.Name%></label>
</div>
<% } %>
</div>
UPDATE(当我应用@Satpal方法时):
<div id="employee" style="margin: 7px 0;">
<div>
<input id="james-johnson" type="radio" name="employee" value="james-johnson" checked="checked"><label for="james-johnson">James Johnson</label>
</div>
<div>
<input id="boss-hog" type="radio" name="employee" value="boss-hog" checked=""><label for="boss-hog">Boss Hog</label>
</div>
<div>
<input id="jake-sanders" type="radio" name="employee" value="jake-sanders" checked=""><label for="jake-sanders">Jake Sanders</label>
</div>
<div>
<input id="dawn" type="radio" name="employee" value="dawn" checked=""><label for="dawn">Dawn</label>
</div>
</div>
答案 0 :(得分:1)
As checked属性是布尔属性。 如果存在,则指定在页面加载时应预先选择(选中)元素。
仅当checked
未设置<{p}}时才设置employee is Selected
属性
<input id="<%: employee.Key %>"
type="radio" name="employee" value="<%: employee.Key %>"
"<%:employee.IsEmployeeSelected ? "checked" : "" %>" />
<label for="<%: employee.Key %>"><%: employee.Name%>
</label>
修改后的代码
"<%: employee.IsEmployeeSelected ? "checked" : "" %>"
将employee.IsEmployeeSelected
转换为布尔属性
编辑:根据评论 Currentely它被“检查”并且为空
"<%: !string.IsNullOrEmpty(employee.IsEmployeeSelected) ? employee.IsEmployeeSelected : "" %>"
或者只需将<%:employee.IsEmployeeSelected ?? "" %>
设置为
<input <%:employee.IsEmployeeSelected ?? "" %> />
OP已将字段IsEmployeeSelected
更新为布尔值
public bool IsEmployeeSelected { get; set; }
因此使用<%:employee.IsEmployeeSelected ? "checked" : "" %>
代替checked="<%:employee.IsEmployeeSelected ? "checked" : "" %>"