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代码