Jquery 选中gridview中的复选框,选择行

Jquery 选中gridview中的复选框,选择行,jquery,asp.net,Jquery,Asp.net,我有这样的代码,检查行点击复选框,但问题是我不能点击复选框本身 $(document).ready(function () { //$("#<%=grdRP.ClientID %> td").click(function () { $('body').on('click', 'tr.dataRow', function () { selectRow($(this).closest("t

我有这样的代码,检查行点击复选框,但问题是我不能点击复选框本身

 $(document).ready(function () {
               //$("#<%=grdRP.ClientID %> td").click(function () {
               $('body').on('click', 'tr.dataRow', function () {
                   selectRow($(this).closest("tr"));
               });
           });

           function selectRow(row) {
               var firstInput = row[0].getElementsByTagName('input')[0];
               firstInput.checked = !firstInput.checked;
           }
$(文档).ready(函数(){
//$(“#td”)。单击(函数(){
$('body')。在('click','tr.dataRow',函数(){
选择行($(this).closest(“tr”);
});
});
函数selectRow(行){
var firstInput=行[0]。getElementsByTagName('input')[0];
firstInput.checked=!firstInput.checked;
}
下面是gridview的html代码

<asp:GridView ID="grdLocation" runat="server" AutoGenerateColumns="False" BackColor="White" BorderColor="#DEDFDE" BorderStyle="None" BorderWidth="1px" CellPadding="4" DataSourceID="SqlDataSource2" ForeColor="Black" GridLines="Vertical" Width="420px" ShowHeaderWhenEmpty="True" EmptyDataText="No records Found" OnRowDataBound="grdLocation_RowDataBound" >
                                    <AlternatingRowStyle BackColor="White" />

                                    <Columns>
                                          <asp:TemplateField>
                                                <ItemTemplate>
                                                    <asp:CheckBox ID="chkLocSelected" runat="server"/>
                                                </ItemTemplate>
                                        </asp:TemplateField>
                                        <asp:BoundField DataField="Location Num" HeaderText="Location Num" SortExpression="Location Num" />
                                        <asp:BoundField DataField="Location Name" HeaderText="Location Name" SortExpression="Location Name" />
                                         <asp:BoundField DataField="Loc Group" HeaderText="Loc Group" SortExpression="Loc Group" />

                                    </Columns>
                                    <FooterStyle BackColor="#CCCC99" />
                                    <HeaderStyle BackColor="#6B696B" Font-Bold="True" ForeColor="White" />
                                    <PagerStyle BackColor="#F7F7DE" ForeColor="Black" HorizontalAlign="Right" />
                                    <RowStyle BackColor="#F7F7DE" />
                                    <SelectedRowStyle BackColor="#90FF90" Font-Bold="True" ForeColor="Black"  />
                                    <SortedAscendingCellStyle BackColor="#FBFBF2" />
                                    <SortedAscendingHeaderStyle BackColor="#848384" />
                                    <SortedDescendingCellStyle BackColor="#EAEAD3" />
                                    <SortedDescendingHeaderStyle BackColor="#575357" />
                                </asp:GridView>


我对您试图实现的目标有点困惑。因此,在单击该行时,您希望选中该行并选中复选框,但也希望能够选中/取消选中复选框?

我对您试图实现的目标有点困惑。因此,单击该行时,您希望选中该行并选中复选框不选中复选框,但也希望能够选中/取消选中复选框?

当您单击复选框时,您将触发两个
更改
事件。这基本上意味着它会立即选中和取消选中,并且您看不到任何更改。要防止出现这种情况,请确保您在单击复选框时不会触发函数

您可以将元素与
事件.target
匹配。 在这种情况下,我假设匹配
标记名
就足够了

$('body').on('click', 'tr.dataRow', function (e) {
    if(e.target.tagName != 'INPUT') {
        selectRow($(this).closest("tr"));
    }
});
或者,您可以尝试
event.preventDefault()


当您单击复选框时,会触发两个
change
事件。这基本上意味着它会立即选中并取消选中,而您不会看到任何更改。要防止出现这种情况,请确保您在单击复选框时不会触发函数

您可以将元素与
事件.target
匹配。 在这种情况下,我假设匹配
标记名
就足够了

$('body').on('click', 'tr.dataRow', function (e) {
    if(e.target.tagName != 'INPUT') {
        selectRow($(this).closest("tr"));
    }
});
或者,您可以尝试
event.preventDefault()


你试过调试它吗?放一些日志或添加断点。你的html在哪里?你试过调试它吗?放一些日志或添加断点。你的html在哪里?我的问题是当我尝试单击复选框时,我似乎无法单击它,但当我单击gridview行时,它将被选中。我想要的是能够同时单击复选框和断点gridview行不仅在gridview行上。实际上,我们有相同的问题,据我所知,gridview有一个使用rowdata命令事件的行单击事件,当用户单击某一特定行时,该行上的复选框将被选中。但是,当复选框本身要单击时,复选框未被选中,可能是因为gridview行click Event的现有javascript代码我的问题是,当我尝试单击复选框时,我似乎无法单击它,但当我单击gridview行时,它将被选中。我想要的是能够同时单击复选框和gridview行,而不仅仅是在gridview行上。实际上,我们有相同的问题,据我所知,gridview使用rowdata命令事件有一个行单击事件,当用户单击某一特定行时,该行上的复选框将被选中。但是,当复选框本身被选中时,复选框未被选中,这可能是因为gridview行单击事件的现有javascript代码