在内联编辑中,在编辑之前,它会在内部创建一个数组(savedRow
)并填充可编辑字段的值,以便我可以访问这些值。jqGrid - 表单编辑问题
我想知道如果在表单编辑它有类似的东西,因为我需要访问字段的值之前编辑将完成进行验证之前,字段被“保存”在数据库。
有人可以帮助我吗?
编辑:
我在这里发布我的代码(一个字段的代码)的一部分,我想在方式(在线编辑和表单编辑)既验证。对于内联编辑我正在使用dataEvents
进行验证,在那里我使用savedRow
来访问尚未存储的数据。但是当我尝试使用表单编辑进行编辑时,由于使用了savedRow,它向我显示一个错误:savedRow is not defined
。在这个领域的情况下,editrules
符合我想要做的,但我不知道这是否会发生在所有这些领域。
{ name: 'ac_fd', index: 'ac_fd', width: 50, editable: true,
formatter: 'number', editrules: { number:true, required:true, minValue: 0.1,
maxValue: 1.0 }, formatoptions: { decimalPlaces: 1, decimalSeparator: '.'},
editoptions: {
dataEvents: [ {
type: 'blur', fn: function(e) {
var savedrow = $("#list").getGridParam('savedRow');
console.log($(this).val());
if($(this).val() != savedrow[0]['ac_fd']) {
var eid='#' + savedrow[0]['id'] + '_ac_fd';
var val_fd=$(this).val();
var fd_min=0.1;
var fd_max=1.0;
if(isNaN(val_fd) || val_fd > fd_max || val_fd < fd_min) {
setTimeout(function(){
$(eid).focus().select();
},600);
$(eid).qtip({
content: {
text: 'Fator de Demanda deve ser um <b>número</b>
entre <b>' + fd_min.toFixed(1) + '</b> e <b>'
+ fd_max.toFixed(1) + '</b>.',
title: {
text: 'Atenção:',
button: true
}
},
show: {
event: false,
ready: true,
effect: function() {
$(this).stop(0, 1).fadeIn(400);
},
delay: 0,
},
hide: {
event: false,
effect: function(api) {
$(this).stop(0, 1).fadeOut(900).queue(function() {
api.destroy();
});
},
},
style: {
classes: 'qtip-red qtip-rounded trif_tip_err',
tip: {
width: 10,
height:12
}
},
position: {
my: 'bottom left',
at: 'top center',
},
events: {
render: function(event, api) {
tip_timer.call(api.elements.tooltip, event);
}
}
});
}
}
}
} ]
}
},
所以,如果dataEvents
是常见的,用于三种形式的编辑,我在哪里可以做这种类型的验证(使用qtip过,我想,这个验证中联编辑使用过)?
感谢您的回复:) Hummm我认为表单编辑工作就像内嵌编辑,但现在我明白了。谢谢你,@ Oleg! :) – mailazs
@mailazs:不客气! jqGrid的一个大问题是它包含许多代码重复或者很多关闭,但是不同的实现是相同的。内联编辑,单元格编辑和表单编辑仅具有部分常用功能,如'createEl','bindEv'和'checkValues'(来自[模块](https://github.com/tonytomov/jqGrid/blob/master/) js/grid.common.js)最主要的工作包含*在所有三种编辑模式下的不同实现* – Oleg
Huuumm我认为他们可以考虑在所有三种模式下实现主要功能,比如在这种情况下......他们可能已经实现了一些东西,允许你在提交表单之前按字段验证它,这会非常有帮助:) 我在验证时遇到了一些麻烦,因为我使用'dataEvents'在内联编辑中进行了验证,而在'dataEvents'中我使用'savedRow',所以当我要使用表单编辑时,会产生一个问题:(你对我有一些建议吗? – mailazs