下面的代码根据复选框选中状态隐藏表格行。 我一直无法定位asp:checkbox的id,因为它们呈现的方式。
代码(表包裹在datalist中)
<table>
<tr>
<td><asp:CheckBox ID="cb" CssClass="css" RunAt="Server"/></td>
</tr>
<tr class="row"><td></td</tr>
</table>
SCRIPT
$("#<%= dl.ClientID %> #<%= cb.ClientID %>").change(function(){
var hide = this.checked ? 'none' : 'table-row';
$('.row').css('display', hide);
});
解
$("#<%= dl.ClientID %> input:checkbox").change
(工作但未明确定位唯一的复选框)
$("#<%= dl.ClientID %> .css").change
(因为asp:checkbox类被附加到包装的span标记,所以不起作用)
$("#<%= dl.ClientID %> #<%= cb.ClientID %>").change
*(不起作用,因为asp:checkbox id呈现 _0 后缀为已检查状态)*
答案
<asp:CheckBox ID="cb" RunAt="Server" onclick="hide();"/>
function hide(){
$('.row').toggle()
};
答案 0 :(得分:2)
我知道重点始终是不引人注目的javascript,但如果你无法找到更好的解决方案,你总是可以选择将onclick属性添加到复选框。
<asp:CheckBox ID="cb" CssClass="css" RunAt="Server" onclick="callfunction(this);/>
答案 1 :(得分:2)
尝试将ClientIDMode设置为Static。这会将ClientID设置为ID的值。
<asp:CheckBox ID="cb" ClientIDMode="Static" RunAt="Server" onclick="hide()" />
function hide() {
$('#cb').toggle();
}