JQuery $(返回null

时间:2009-10-06 14:22:35

标签: jquery search input

我遇到的问题是我的JQuery返回null。

这是我的JQuery(包含在.js中)....

$(document).ready(function() {        
var chkBox = $("#gvEntryPoints input[id$='cbxIncludeAll']");        
chkBox.click(function() {                 
    $("#gvEntryPoints input[type='checkbox']").attr('checked', chkBox.is(':checked'));
});        

// To deselect CheckAll when a GridView CheckBox is unchecked        
$("#gvEntryPoints INPUT[type='checkbox']").click(function(e) {            
    if (!$(this)[0].checked) {                
        chkBox.attr("checked", false);            
    }        
});    

}

看来chkBox永远不会被分配,因此永远不会分配点击事件。

这是我的HTML ...

<asp:GridView CssClass="GridView" ID="gvEntryPoints" runat="server" AutoGenerateColumns="false">
            <Columns>
                <asp:TemplateField Visible="false">
                    <ItemStyle CssClass="GridView_Item" />
                    <ItemTemplate>
                        <asp:Label runat="server" ID="lblEntryPointListItemId" Text='<%# Eval("EntryPointListItemId") %>'/>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField Visible="false">
                    <ItemStyle CssClass="GridView_Item" />
                    <ItemTemplate>
                        <asp:Label runat="server" ID="lblEntryPointId" Text='<%# Eval("EntryPointId") %>'/>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField HeaderText="Include">
                    <ItemStyle CssClass="GridView_Item" />
                    <HeaderTemplate>
                        <asp:CheckBox runat="server" ID="cbxIncludeAll" CssClass="label" Checked="true" Text="Include<br/>All" TextAlign="Left" />
                    </HeaderTemplate>
                    <ItemTemplate>
                        <asp:CheckBox runat="server" ID="cbxEPInclude" name="EPInclude" CssClass="EPCheckBox" Checked="true" />
                    </ItemTemplate>
                </asp:TemplateField>
            </Columns>
        </asp:GridView>

我的HTML位于.ascx中。 .ascx包含在.aspx内容页面中。我在主页面上包含了JQuery库(我已尝试过头部,身体顶部和身体底部)。

1 个答案:

答案 0 :(得分:3)

问题是该复选框不会在客户端使用id cbxIncludeAll呈现。它将具有由asp.net生成的ID。比如crtl_Gridview1_001_cbxIncludeAll或类似的东西。查看客户端来源以查看名称。

您还可以使用每个控件的clientID属性来获取客户端ID。