Javascript 复选框事件未使用jquery触发
我在父网格中有复选框行,在子网格中也有复选框行。建筑是这样的 我在父网格中有四行,其中一列是复选框,对于每一个父行,我有一个子网格,其中有四行,还有一列是复选框 如果我单击父网格行中的复选框,我需要访问仅与此行相关的子网格列中的复选框,并且需要将该子网格的checked属性设置为true 为此,我访问父网格复选框,如下所示 这是javascript函数Javascript 复选框事件未使用jquery触发,javascript,jquery,kendo-ui,kendo-grid,kendo-asp.net-mvc,Javascript,Jquery,Kendo Ui,Kendo Grid,Kendo Asp.net Mvc,我在父网格中有复选框行,在子网格中也有复选框行。建筑是这样的 我在父网格中有四行,其中一列是复选框,对于每一个父行,我有一个子网格,其中有四行,还有一列是复选框 如果我单击父网格行中的复选框,我需要访问仅与此行相关的子网格列中的复选框,并且需要将该子网格的checked属性设置为true 为此,我访问父网格复选框,如下所示 这是javascript函数 <script type="text/javascript"> $('.chkbxq').live('click', f
<script type="text/javascript">
$('.chkbxq').live('click', function (e) {
alert('1'); // this alert is not firing
var checkchildgrid = $('#Gridparent').find(".k-detail-row").find('td.k-detail-cell').find('[type="checkbox"]').is(':checked');
alert(checkchildgrid);
if ($(this).is(':checked')) {
checkchildgrid.attr('checked', 'checked');
} else {
checkchildgrid.attr('checked', false);
}
});
</script>
$('.chkbxq').live('click',函数(e){
警报('1');//此警报未触发
var checkchildgrid=$('#Gridparent').find(“.k-detail-row”).find('td.k-detail-cell').find('[type=“checkbox"]').是(':checked');
警报(checkchildgrid);
如果($(this).is(':checked'){
checkchildgrid.attr('checked','checked');
}否则{
checkchildgrid.attr('checked',false);
}
});
这是层次结构网格代码
@model IEnumerable<Topco.TopMapp.MVC.Models.CostPageSearch>
@{
ViewBag.Title = "Index";
}
<h2>Index</h2>
@using (Html.BeginForm())
{
@(Html.Kendo().Grid<Topco.TopMapp.MVC.Models.CostPageSearch>()
.Name("Gridparent")
.Columns(columns =>
{
columns.Template(@<text></text>).ClientTemplate("<input id='chqprnt' class= 'chkbxq' type='checkbox'/>").Width(30);
columns.Bound(e => e.CostPage).Width(100);
columns.Bound(e => e.Description).Width(100);
columns.Bound(e => e.VendorName).Width(100);
columns.Bound(e => e.BillTypeDirect).Width(100);
columns.Bound(e => e.BillTypeWarehouse).Width(100);
columns.Bound(e => e.VendorName).Width(100);
})
.Sortable()
.Pageable()
.Scrollable()
.ClientDetailTemplateId("client-template")
.HtmlAttributes(new { style = "height:480px;" })
.DataSource(dataSource => dataSource
.Ajax()
.PageSize(6)
.Read(read => read.Action("HierarchyBinding_Employees", "CostPageDisplay"))
)
.Events(events => events.DataBound("dataBound"))
)
<script id="client-template" type="text/kendo-tmpl">
@(Html.Kendo().Grid<Topco.TopMapp.MVC.Models.ItemsDescriptionModel>()
.Name("grid_#=CostPage#")
.Columns(columns =>
{
columns.Template(@<text></text>).ClientTemplate("<input id='checkbox' class='chkbx' type='checkbox' />").Width(30);
columns.Bound(o => o.ItemId).Width(100);
columns.Bound(o => o.ItemDescription).Width(100);
columns.Bound(o => o.BrandCode).Width(100);
columns.Bound(o => o.PackSize).Width(100);
})
.DataSource(dataSource => dataSource
.Ajax()
.PageSize(5)
.Read(read => read.Action("HierarchyBinding_Orders", "CostPageDisplay" , new { employeeID = "#=CostPage#" }))
)
.Pageable()
.Sortable()
.ToClientTemplate()
)
</script>
<script>
function dataBound() {
this.expandRow(this.tbody.find("tr.k-master-row").first());
//alert('1');
}
</script>
@model IEnumerable
@{
ViewBag.Title=“Index”;
}
指数
@使用(Html.BeginForm())
{
@(Html.Kendo().Grid())
.名称(“家长”)
.列(列=>
{
columns.Template(@).ClientTemplate(“”)宽度(30);
columns.Bound(e=>e.CostPage).Width(100);
columns.Bound(e=>e.Description).Width(100);
columns.Bound(e=>e.VendorName).Width(100);
columns.Bound(e=>e.BillTypeDirect).Width(100);
列.绑定(e=>e.BillTypeWarehouse).宽度(100);
columns.Bound(e=>e.VendorName).Width(100);
})
.Sortable()
.Pageable()
.Scrollable()
.ClientDetailTemplateId(“客户端模板”)
.HtmlAttributes(新的{style=“height:480px;”})
.DataSource(DataSource=>DataSource
.Ajax()
.页面大小(6)
.Read(Read=>Read.Action(“HierarchyBinding_Employees”,“CostPageDisplay”))
)
.Events(Events=>Events.DataBound(“DataBound”))
)
@(Html.Kendo().Grid())
.Name(“网格=成本页”)
.列(列=>
{
columns.Template(@).ClientTemplate(“”)宽度(30);
columns.Bound(o=>o.ItemId).Width(100);
columns.Bound(o=>o.itemsdescription).Width(100);
columns.Bound(o=>o.BrandCode).Width(100);
columns.Bound(o=>o.PackSize).Width(100);
})
.DataSource(DataSource=>DataSource
.Ajax()
.页面大小(5)
.Read(Read=>Read.Action(“HierarchyBinding_Orders”,“CostPageDisplay”,new{employeeID=“#=CostPage#”}))
)
.Pageable()
.Sortable()
.ToClient模板()
)
函数数据绑定(){
this.expandRow(this.tbody.find(“tr.k-master-row”).first());
//警报(“1”);
}
但当我点击父网格中的复选框时,点击事件不会触发
请任何人提出任何关于这个问题的想法和解决方案,我将非常感激
非常感谢
编辑:请看下面的图片,这是我放置复选框的地方,单击该复选框不会触发事件
如果有帮助,请参阅以下内容:
<script type="text/javascript">
$('.chkbxq').on('click', function (e) {
alert('1'); // this alert is not firing
var checkchildgrid = $('#Gridparent').find(".k-detail-row").find('td.k-detail-cell').find('[type="checkbox"]').prop('checked');
alert(checkchildgrid);
if ($(this).prop('checked')) {
checkchildgrid.prop('checked', 'checked');
} else {
checkchildgrid.prop('checked', false);
}
});
$('.chkbxq')。在('click',函数(e)上{
警报('1');//此警报未触发
var checkchildgrid=$('#Gridparent').find(“.k-detail-row”).find('td.k-detail-cell').find('[type=“checkbox“]”).prop('checked');
警报(checkchildgrid);
if($(this.prop('checked')){
checkchildgrid.prop('checked','checked');
}否则{
checkchildgrid.prop('checked',false);
}
});
希望有帮助。试试这个
$('#Gridparent').on("click", ".chkbxq", function (e) {
var selected = $(this).is(':checked');
var grid = $("#grid12").data("kendoGrid");
if (selected == true) {
var check = $('.k-detail-row').find('td.k-detail-cell').find('div.k-grid').find('table').find('tbody').find('[type="checkbox"]').attr('checked', true);
var asd = check.is(':checked');
alert(asd);
}
});
使用网格单击。这是我认为应该如何编码的-免责声明我根本不知道剑道 如果我们需要在您编写时处理复选框,我们可以这样做
$(function() {
$('.chkbxq').on('click', function (e) {
var checked = this.checked;
$('#Gridparent').find(".k-detail-row").find('td.k-detail-cell').find('[type="checkbox"]').each(function()
this.checked=checked; // toggle
});
});
});
如果内容是AjaxIn,则需要
$(function() {
$("#Gridparent").on('click','.chkbxq', function (e) {
var checked = this.checked;
$(this).find(".k-detail-row").find('td.k-detail-cell').find('[type="checkbox"]').each(function()
this.checked=checked; // toggle
});
});
});
注意。在dom中查找所有作品,因此您可能只需要
$(this).find('[type="checkbox"]').each(function()
在
jquery 1.9
中删除live,请使用.on
代替,并在$(function(){--}中换行
我正在使用jquery 1.7.1.js版本..但我仍然无法触发该事件…@MohammadAdil请您看看我放置checbox的图像,我正在尝试触发选中的事件,因为我在ie8中遇到错误,比如对象不支持此属性或方法..我已将调试器放入此单击函数中,该函数是我得到了那个错误,现在我删除了调试器,我在ie8中并没有得到任何错误…但我也并没有得到那个警报…$('.chkbxq'),如果您更改为$('#chqprnt'),则不会得到这个警报,在这种情况下也不会触发???谢谢,我可以触发该事件,但在侧面,我无法设置这些事件为真…请帮助此函数不起作用…$(this).find(.k-detail-row”).find('td.k-detail-cell').find('[type=“checkbox])“]”)。每个(function()
No都没有看到呈现的html。你能用实际生成的html生成一个JSFIDLE.net吗?Jaimin我遇到了同样的问题,就像我在父网格行中选中复选框一样,它会选中子网格行复选框(这里没有问题),但它也会选中所有其他父网格行复选框(问题在这里)我还想问一个问题,我无法获得子网格的行数,请您对此提供帮助…嗯,我已经纠正了一个,现在它工作正常…我需要循环子网格中的所有行,以便获得子网格的行数…我尝试了这些,但dint工作var childrowscont=$(“.k-detail-row”).find('td.k-detail-cell').find('div.k