在jqgrid上编辑一行时,光标会自动进入最左边的可编辑字段。有没有办法让它默认为特定列,或者更好的是,默认为我点击的任何列?
最佳答案
实现取决于 jqGrid 的版本以及您使用的 jqGrid 的分支。
如果您使用最新版本的免费 jqGrid 那么代码
onSelectRow: function (rowid, status, e) {
var $self = $(this), savedRow = $self.jqGrid("getGridParam", "savedRow");
if (savedRow.length > 0 && savedRow[0].id !== rowid) {
$self.jqGrid("restoreRow", savedRow[0].id);
}
$self.jqGrid("editRow", rowid, { focusField: e.target });
},
inlineEditing: { keys: true, defaultFocusField: "amount", focusField: "amount" }
参见the demo 。上面的代码使用e.target
作为 focusField
的值jqGrid方法的属性editRow
。结果,焦点将设置在单击的单元格上。如果用户单击不可编辑的单元格(例如“行号”列),则选项 defaultFocusField
将被使用并且焦点将设置在列 "amount"
上。我提醒一下,免费的jqGrid使用inlineEditing
选项来指定内联编辑的默认参数(有关更多详细信息,请参阅 the wiki article)。
选项focusField
的editRow
从 4.7 版本开始支持,但旧版本仅支持 bool 值和数字值。
关于javascript - 在 jqgrid 的编辑模式下,我可以让光标默认从特定列开始吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33134809/