正如在另一个问题(jqgrid editoptions custom_func with required=false)中评论的那样,现在我需要使用custom_func验证输入。此验证需要将输入值与用户输入的其他列值进行比较。换句话说,需要在提交之前获取所有当前行值以确定验证结果。 我设法以这种方式获得了一些特定的专栏......
function myCustomFunc(value, colName) {
//consider I have a global var "selRowId" which is updated onSelectRow event.
var someColValue = $('select#'+selRowId+'_someColName').val();
// ... here the validation using the "someColValue" ...
}
我认为这不是最好的方法。我更喜欢一些方法,它返回一个类似于“getRowData”的对象,但包含来自用户的所有输入值。
我正在使用jqGrid 4.6.0
答案 0 :(得分:1)
您似乎使用内联编辑。版本4.6中的jqGrid没有其他可能访问当前值,但是当前的免费jqGrid源(GitHub的初步版本4.13.7)包含新的回调saveRowValidation
和事件jqGridInlineSaveRowValidation
,其中可以简化您需要实施的内容。
回调saveRowValidation
包含一个参数,就像在free jqGrid中实现的大多数其他回调一样。该参数,我们将其命名为options
,包含以下属性
mode
,其值为"edit"
或"add"
rowid
- 编辑行的id属性值newData
- 具有行savedRow
- 包含编辑前行的数据的对象options
- 内联编辑选项iRow
- 网格顶部的行索引tr
- DOM元素,代表编辑行我认为options.newData
就是你所需要的。有关详细信息,请参阅the commit的评论。