Jqgrid custom_func验证并获取所有行编辑值

时间:2017-01-14 22:31:44

标签: jquery validation jqgrid

正如在另一个问题(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

1 个答案:

答案 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的评论。