我正在使用asp.net asp:CheckBoxList with RepeatLayout =“UnorderedList”
它始终将输出呈现为(为简洁而缺少某些值)
<ul class="checkbox unstyled">
<li><input type="checkbox" value="17"><label>Label Name</label></li>
</ul>
但突然之间我得到一个渲染到列表中的范围
<ul class="checkbox unstyled">
<li><span alt="17"><input type="checkbox" value="17"><label>Label Name</label></span></li>
</ul>
由以下代码生成
<div class="control-group" >
<label class="control-label" id="Label2">Available Mailing Lists</label>
<div class="controls">
<asp:CheckBoxList id="chklSubs" runat="server" RepeatLayout="UnorderedList" CssClass="checkbox unstyled"></asp:CheckBoxList>
</div>
</div>
它正在弄乱我的CSS并使列表中断。为什么我会得到这个范围,我该如何摆脱它呢?
旁注我正在使用twitter bootstrap设计样式。
完整输出
<ul id="ContentPlaceHolderDefault_override_innerPageOverRide_BoilerplateMainContentPlaceHolder_ctl00_SignUpCtl_4_chklSubs" class="checkbox unstyled">
<li><span alt="7"><input id="ContentPlaceHolderDefault_override_innerPageOverRide_BoilerplateMainContentPlaceHolder_ctl00_SignUpCtl_4_chklSubs_0" type="checkbox" name="ctl00$ctl00$ctl00$ContentPlaceHolderDefault$override$innerPageOverRide$BoilerplateMainContentPlaceHolder$ctl00$SignUpCtl_4$chklSubs$0" value="7"><label for="ContentPlaceHolderDefault_override_innerPageOverRide_BoilerplateMainContentPlaceHolder_ctl00_SignUpCtl_4_chklSubs_0">Energy Express Newsletter</label></span></li>
</ul>
答案 0 :(得分:0)
如果在控件上放置任何CssClass或其他属性,则复选框将嵌套到span中。如果在代码中禁用了复选框控件,则会在span-tag上设置“disabled”属性。我注意到它,因为jQuery无法使用输入选择器删除此属性(仅在IE中不起作用)。
这适用于所有普通浏览器,请尝试以下方法:
$("div#" + value + " input:checked").removeAttr('disabled');
你需要添加它才能让它在IE中运行:
$("div#" + value + " span").removeAttr('disabled');
看看这里: C# asp.net: How to remove span tag from WebControl when rendered