インライン編集では、編集を行う前に、内部的に配列 ( savedRow
) を作成し、編集可能なフィールドの値を入力して、この値にアクセスできるようにします。
フィールドがデータベースに「保存」される前に、編集が完了する前にフィールドの値にアクセスして検証を行う必要があるため、フォーム編集でこれに似たものがあるかどうかを知りたいです。
誰かが私を助けることができますか?
編集済み:
ここにコードの一部 (1 つのフィールドのコード) を投稿し、両方の方法 (インライン編集とフォーム編集) で検証しようとしています。インライン編集では、 を使用して検証していますが、まだ保存されていないデータにアクセスするためにを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);
}
}
});
}
}
}
} ]
}
},
が一般的であり、3 つの形式の編集に使用される場合dataEvents
、このタイプの検証をどこで行うことができますか (qtip も使用し、この検証をインライン編集でも使用したい)?