jqgrid custom_func 验证现有行
Posted
技术标签:
【中文标题】jqgrid custom_func 验证现有行【英文标题】:jqgrid custom_func validate existing row 【发布时间】:2017-05-19 12:40:59 【问题描述】:我不知道我的编码有什么问题?
colModel: [
key: true, hidden: true, name: 'Id', index: 'Id', editable: true
,
name: 'ProjectCode',
index: 'ProjectCode',
sorttype: "text",
edittype: "text",
editable: true,
editrules:
required: true,
custom: true,
custom_func: function (value, colName)
return validateDuplicateData(value, colName);
这里是 validateDuplicateData 函数:
function validateDuplicateData(value, colName)
var allRowsInGrid = $('#jqgrid').jqGrid('getRowData');
$.each(allRowsInGrid, function (k, v)
if (v.ProjectCode == value)
return [false, "Project code has been used. Please try using another code."];
);
为什么结果总是显示在下面:
MessageBox : "自定义函数应该返回数组!"
请指教... 谢谢。。
【问题讨论】:
您应该将 current 行中的值排除在测试之外。您能否提供有关您所做工作的更多详细信息?您使用哪种编辑模式和datatype
?您使用哪个版本的 jqGrid 以及来自 jqGrid 的哪个分支(free jqGrid、商业Guriddo jqGrid JS 或版本 custom 指定为free jqGrid 中的回调函数,而不是使用custom_func
。您将获得 rowid 作为参数,这可以很容易地从测试中排除可编辑的行。
the commit的评论详细描述了custom
回调的选项。有关详细信息,请参阅the issue。
【参考方案1】:
函数从不返回 true 与数组。如果循环后没有发现重复数据,它应该在函数结束时返回 true。
【讨论】:
以上是关于jqgrid custom_func 验证现有行的主要内容,如果未能解决你的问题,请参考以下文章