使用 jquery 在数据列表中获取 asp:checkbox 的 id

Get id of asp:checkbox inside a datalist using jquery

本文关键字:asp checkbox id 获取 jquery 数据 列表 使用      更新时间:2023-09-26

下面的代码根据复选框选中状态隐藏表行。由于 asp:复选框的呈现方式,我一直无法定位它们的 id。

代码(用数据列表包装的表(

<table>
  <tr>
    <td><asp:CheckBox ID="cb" CssClass="css" RunAt="Server"/></td>
  </tr>
  <tr class="row"><td></td</tr>
</table>

脚本

$("#<%= 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:复选框类附加到包装的 span 标记(

$("#<%= dl.ClientID %> #<%= cb.ClientID %>").change

*(不起作用,因为 asp:复选框 id 将 _0 的后缀呈现为选中状态(*

答案

<asp:CheckBox ID="cb" RunAt="Server" onclick="hide();"/>
function hide(){
    $('.row').toggle()
};

我知道重点总是放在不显眼的javascript上,但是如果您找不到更好的解决方案,则始终可以选择将onclick属性添加到复选框中。

<asp:CheckBox ID="cb" CssClass="css" RunAt="Server" onclick="callfunction(this);/>

尝试将 ClientID Moode 设置为 Static。 这会将客户端 ID 设置为 ID 的值。

<asp:CheckBox ID="cb" ClientIDMode="Static" RunAt="Server" onclick="hide()" />
function hide() {
    $('#cb').toggle();
}