0

以下のコードは、チェックボックスのチェック状態に基づいて表の行を非表示にします。レンダリング方法が原因で、asp:checkbox の id をターゲットにすることができませんでした。

CODE (データリストにラップされたテーブル)

<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:checkbox クラスがラップされた span タグにアタッチされているため、機能しません)

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

*(asp:checkbox id が_0のサフィックスをチェック状態にレンダリングするため、機能しません)*

答え

<asp:CheckBox ID="cb" RunAt="Server" onclick="hide();"/>

function hide(){
    $('.row').toggle()
};
4

2 に答える 2

2

ClientIDMode を Static に設定してみてください。これにより、ClientID が ID の値に設定されます。

<asp:CheckBox ID="cb" ClientIDMode="Static" RunAt="Server" onclick="hide()" />

function hide() {
    $('#cb').toggle();
}
于 2013-10-11T13:42:08.140 に答える