Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery Jqgrid自定义函数验证并获取所有行编辑值_Jquery_Validation_Jqgrid - Fatal编程技术网

Jquery Jqgrid自定义函数验证并获取所有行编辑值

Jquery Jqgrid自定义函数验证并获取所有行编辑值,jquery,validation,jqgrid,Jquery,Validation,Jqgrid,正如它在另一个问题()中所评论的那样,现在我需要使用custom_func验证输入。此验证需要将输入值与用户输入的其他列值进行比较。换句话说,在提交之前需要获取所有当前行值,以确定验证结果。 我设法通过这种方式得到了一些特定的专栏 function myCustomFunc(value, colName) { //consider I have a global var "selRowId" which is updated onSelectRow event. var some

正如它在另一个问题()中所评论的那样,现在我需要使用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

似乎您使用的是内联编辑。版本4.6中的jqGrid没有访问当前值的其他可能性,但是免费jqGrid的当前源(GitHub的初步版本4.13.7)包含新的回调
saveRowValidation
和事件
jqGridInlineSaveRowValidation
,这可以简化您需要实现的内容

回调
saveRowValidation
包含一个参数,与免费jqGrid中实现的大多数其他回调一样。让我们将其命名为
options
,该参数包含以下属性

  • 模式
    ,值为
    “编辑”
    “添加”
  • rowid
    -编辑行的id属性值
  • newData
    -具有行的修改数据的对象
  • savedRow
    -编辑前包含行数据的对象
  • 选项
    -内联编辑选项
  • iRow
    -从网格顶部开始的行索引
  • tr
    -DOM元素,表示编辑行

我认为
options.newData
是您所需要的。有关更多详细信息,请参阅的评论。

我认为saveRowValidation是一个很好的解决方案,我会在实现新版本的免费jqgrid后立即尝试。当前版本是4.13.6?还是4.13.7?@Aberel:最新发布的版本是“4.13.6”(2016年12月24日)。在上次发布后对代码进行第一次更改后,我增加了版本号(至“4.13.7-pre”)。回调
saveRowValidation
(和事件
jqGridInlineSaveRowValidation
)已于2017年1月4日提交。我通常每个月都会发布新版本。因此,我计划在大约1-2周内发布下一个“4.13.7”版本。