如何捕获kendo网格单元格的焦点事件?

在我的kendo网格中,我想在一个单元格中放置一些值,然后在离开单元格后,根据该单元格的值,我需要在adjitacent单元格上放置一些其他值。 我怎样才能做到这一点?

我研究了下面的jsfiddle,问题是它每当我离开任何单元格时触发事件,但我需要只为一个列的单元格触发事件。

http://jsfiddle.net/latenightcoder/6ZNqN/1/

这是我的网格:

//To Define Columns for Yearly Holiday Kendo Grid var YearlyHolidayGrid = $("#YearlyHolidayGrid").kendoGrid({ dataSource: YearlyHolidayDataSource, pageable: true, editable: true, edit: function (e) { var input = e.container.find(".k-input"); var value = input.val(); input.keyup(function () { value = input.val(); }); input.blur(function () { //$("#log").html(input.attr('name') + " blurred : " + value); //var a = new Date(); //a = value; //var day = a.getDay(); //alert(day); alert(value); }); }, selectable: "row", navigatable: true, filterable: true, sortable: true, height: 200, columns: [ { field: "HLDY_SLNO", title: "SL", width: "50px" }, { field: "HLDY_DATE", title: "Date", width: "100px" }, { field: "HLDY_DAY", title: "Day", width: "100px" }, { field: "HLDY_NAME", title: "Holiday Name", width: "100px" }, { field: "HLDY_TYPE", title: "Holiday Type", width: "100px" }, { field: "HLDY_STATUS", title: "Holiday Status", width: "100px", editor: YearlyHolidayStatus }, { field: "HLDY_DFIN_TYPE", title: "Defined as", width: "100px", editor: YearlyHolidayDefinedAs }, { field: "HLDY_REM", title: "Remarks", width: "100px" }, { command: [{ name: "DeltedRow", text: "Delete"}], title: "Delete", width: 100 } ] //change: function () { // var row = this.select(); // var id = row.data("id"); // // $("#log") // // .html("selected row with id= " + id + " \ // //, for ShipName = " + dataSource.get(id).get("ShipName")); //} }); 

Plz的帮助。

您应该在定义blur事件处理程序时更改selector ,以便仅选择所需的列。

在JSFiddle,你说你已经研究过,它最初被定义为:

 edit: function(e) { var input = e.container.find(".k-input"); var value = input.val(); input.keyup(function(){ value = input.val(); }); input.blur(function(){ $("#log").html(input.attr('name') + " blurred : " + value); }); }, 

您应该将其定义为:

 edit: function(e) { var input = e.container.find(".k-input"); var value = input.val(); input.keyup(function(){ value = input.val(); }); $("[name='ShipName']", e.container).blur(function(){ var input = $(this); $("#log").html(input.attr('name') + " blurred : " + value); }); }, 

我用作选择器[name='ShipName']即仅为具有属性name等于ShipName的HTML input设置blur

如果您现在使用修改后的版本( 此处 ),您将看到只在日志中显示ShipName时的值。

编辑:如果您需要获取模型中的所有项目以便可以更改另一列,则可以使用dataItem 。 步骤是:

 // Find the row being edited: var row = $(this).closest("tr"); // Get the item using `dataItem`: var item = grid.dataItem(row); 

当ShipName在这里模糊时,修改后的小提琴显示ShipCity: http : //jsfiddle.net/OnaBai/6ZNqN/116/

 function onCellEdit(e) { try { $('.text-box.single-line').change(function () { hasUnSavedChange = true; }); } catch (err) { error_handler(err); } }