【问题标题】:Jqgrid custom_func validation and get all row edit valuesJqgrid custom_func 验证并获取所有行编辑值
【发布时间】:2017-05-30 01:42:39
【问题描述】:

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

【问题讨论】:

    标签: jquery validation jqgrid


    【解决方案1】:

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

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

    • mode 的值为 "edit""add"
    • rowid - 编辑行的id属性值
    • newData - 修改行数据的对象
    • savedRow - 包含编辑前行数据的对象
    • options - 内联编辑选项
    • iRow - 从网格顶部开始的行的索引
    • tr - DOM 元素,代表编辑行

    我认为options.newData 是您所需要的。更多详情请查看the commit的评论。

    【讨论】:

    • 我认为 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”版本。
    猜你喜欢
    • 2017-05-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-06
    相关资源
    最近更新 更多