使用jquery在datalist中获取asp:checkbox的id

时间:2013-10-11 12:55:59

标签: javascript jquery html asp.net checkbox

下面的代码根据复选框选中状态隐藏表格行。 我一直无法定位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()
};

2 个答案:

答案 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();
}