无论保存之前编辑的最后一个字段是什么(如果我先不点击网格的任何其他部分),该字段中的数据将被HTML替换...例如,作为我输入的日期07/01 / 2016然后它保存为00/00/0000。当我在保存之前输出字段时,我看到以下html而不是日期:。除非在保存之前单击另一个单元格,否则不会保存单元格中的日期。请让我知道解决方案是什么?
代码:
jQuery("#billing_schedule").jqGrid({
datatype: 'clientSide',
//datatype: 'local',
//editurl: 'clientArray',
cellEdit: true,
cellsubmit: 'clientArray',
colNames:['','Date','Amount'],
colModel :[
{name:'btn', index:'btn', width:90, sortable:false},
{name:'date', index:'date', sortable:false, width:125, editable:true, editoptions:{size:"20"}},
{name:'amount', index:'amount', sortable:false, width:120, editable:true, editoptions:{size:"20"}}
],
width: 350,
height: 175,
sortname:'date',
sortorder: 'asc',
viewrecords: true,
imgpath: 'css/images',
caption: '',
altRows: false,
beforeEditCell: function(rowid, cellname, value, iRow, iCol) {
cellIsInEditMode = true;
editedRow = iRow;
editedCol = iCol;
},
afterSaveCell: function(rowid, cellname, value, iRow, iCol) {
cellIsInEditMode = false;
if (validateErrorPresent == true){
jQuery("#billing_schedule").setCell(rowid,"date",validatedVar,{},{});
validateErrorPresent = false;
}
},
beforeSaveCell : function(rowid,celname,value,iRow,iCol) {
//validate
if( iCol==1 ) { //standardize the date
if(d==null){
alert('Date string doesn\'t match any recognized formats!');
validateErrorPresent = true;
validatedVar = "invalid";
//jQuery("#billing_schedule").setRowData(ids[i],{date:""})
} else {
var newval = formatDate(d,'M/d/yyyy');
//jQuery("#billing_schedule").setRowData(rowid,{date:newval})
validatedVar = newval;
validateErrorColName = "date";
validateErrorPresent = true;
}
}
},
gridComplete: function() {
}
});
getExistingSchedule();
<?php
$urlToGet = $urlAppPath."php/person_status_includes.php?request=docready&isStudent=1&personID=".$studentID;
readfile($urlToGet);
?>
<?php
if($scheduleID <> 0){
?>
var currentTime = new Date();
var seconds = currentTime.getTime();
var s=htmlSendGrid();
httpObject = getHTTPObject();
if (httpObject != null) {
httpObject.open("GET", "php/predefined_schedules.php?action=get&scheduleID="+jQuery("#schedule_combo").val(), true);
httpObject.send(null);
httpObject.onreadystatechange = loadExistingSchedule;
}
<?php
}
?>
$("a[rel]").overlay();
});
&#13;
答案 0 :(得分:0)
当我添加了saveCellBeforeArray(); 功能到我的保存功能
在我检索我的getHTTPObject以保存数据库之前,它工作了。我的保存功能基本上是:
function onClickSave(){
var ids = jQuery("#billing_schedule").getDataIDs();
if (ids.length>0){
saveCellBeforeArray(); // fixed edit load problem
var ids = jQuery("#billing_schedule").getDataIDs();
var s;
//load data from table
for(var i=0;i<ids.length;i++){
s = s+"&paymentDate="+jQuery("#billing_schedule").getCell(ids[i],1)+"&paymentAmount="+jQuery("#billing_schedule").getCell(ids[i],2);
}
httpObject = getHTTPObject();
...
jQuery("#billing_schedule").jqGrid({
datatype: 'clientSide',
//datatype: 'local',
//editurl: 'clientArray',
cellEdit: true,
cellsubmit: 'clientArray',
colNames:['','Date','Amount'],
colModel :[
{name:'btn', index:'btn', width:90, sortable:false},
{name:'date', index:'date', sortable:false, width:125, editable:true, editoptions:{size:"20"}},
{name:'amount', index:'amount', sortable:false, width:120, editable:true, editoptions:{size:"20"}}
],
width: 350,
height: 175,
sortname:'date',
sortorder: 'asc',
viewrecords: true,
imgpath: 'css/images',
caption: '',
altRows: false,
beforeEditCell: function(rowid, cellname, value, iRow, iCol) {
cellIsInEditMode = true;
editedRow = iRow;
editedCol = iCol;
},
afterSaveCell: function(rowid, cellname, value, iRow, iCol) {
cellIsInEditMode = false;
if (validateErrorPresent == true){
jQuery("#billing_schedule").setCell(rowid,"date",validatedVar,{},{});
validateErrorPresent = false;
}
},
beforeSaveCell : function(rowid,celname,value,iRow,iCol) {
//validate
if( iCol==1 ) { //standardize the date
if(d==null){
alert('Date string doesn\'t match any recognized formats!');
validateErrorPresent = true;
validatedVar = "invalid";
//jQuery("#billing_schedule").setRowData(ids[i],{date:""})
} else {
var newval = formatDate(d,'M/d/yyyy');
//jQuery("#billing_schedule").setRowData(rowid,{date:newval})
validatedVar = newval;
validateErrorColName = "date";
validateErrorPresent = true;
}
}
},
gridComplete: function() {
}
});
getExistingSchedule();
<?php
$urlToGet = $urlAppPath."php/person_status_includes.php?request=docready&isStudent=1&personID=".$studentID;
readfile($urlToGet);
?>
<?php
if($scheduleID <> 0){
?>
var currentTime = new Date();
var seconds = currentTime.getTime();
var s=htmlSendGrid();
httpObject = getHTTPObject();
if (httpObject != null) {
httpObject.open("GET", "php/predefined_schedules.php?action=get&scheduleID="+jQuery("#schedule_combo").val(), true);
httpObject.send(null);
httpObject.onreadystatechange = loadExistingSchedule;
}
<?php
}
?>
$("a[rel]").overlay();
});
&#13;