【发布时间】:2015-03-13 16:51:09
【问题描述】:
我想修改这个 vtiger 函数,它会在提交前进行一些检查。
我添加了globalvar,我想用它来检查表单是否可以提交。我可以在此处更改什么以获得所需的结果?
globalvar 在函数结束时应该是 2 或 3,但它保持为 1,我还在设置它的位置添加了警报,以确保它到达这些点。
registerRecordPreSaveEvent : function(form) {
var thisInstance = this;
if(typeof form == 'undefined') {
form = this.getForm();
}
form.on(Vtiger_Edit_Js.recordPreSave, function(e, data) {
var accountName = thisInstance.getAccountName(form);
var recordId = thisInstance.getRecordId(form);
globalvar = 1;
var params = {};
if(!(accountName in thisInstance.duplicateCheckCache)) {
Vtiger_Helper_Js.checkDuplicateName({
'accountName' : accountName,
'recordId' : recordId,
'moduleName' : 'Accounts'
}).then(
function(data){
thisInstance.duplicateCheckCache[accountName+'_accounts'] = data['success'];
globalvar =2;
},
function(data, err){
thisInstance.duplicateCheckCache[accountName+'_accounts'] = data['success'];
thisInstance.duplicateCheckCache['message'] = data['message'];
var message = 'Company already exists';
Vtiger_Helper_Js.showMessage({'text' : message,'type': 'error'})
}
);
}
else {
if(thisInstance.duplicateCheckCache[accountName+'_accounts'] == true){
var message = 'Company already exists';
Vtiger_Helper_Js.showMessage({'text' : message,'type': 'error'})
} else {
delete thisInstance.duplicateCheckCache[accountName+'_accounts'];
return true;
}
}
if(!(accountName in thisInstance.duplicateCheckCache)) {
Vtiger_Helper_Js.checkDuplicateName({
'accountName' : accountName,
'recordId' : recordId,
'moduleName' : 'Leads'
}).then(
function(data){
globalvar =3;
console.log(globalvar);
thisInstance.duplicateCheckCache[accountName+'_leads'] = data['success'];
},
function(data, err){
thisInstance.duplicateCheckCache[accountName+'_leads'] = data['success'];
thisInstance.duplicateCheckCache['message'] = data['message'];
var message = 'Lead already exists';
Vtiger_Helper_Js.showMessage({'text' : message,'type': 'error'})
}
);
}
else {
if(thisInstance.duplicateCheckCache[accountName+'_leads'] == true){
var message = 'Lead already exists';
Vtiger_Helper_Js.showMessage({'text' : message,'type': 'error'})
} else {
delete thisInstance.duplicateCheckCache[accountName+'_leads'];
return true;
}
}
console.log(globalvar);
e.preventDefault();
})
}
【问题讨论】:
-
您必须描述您要解决的问题。现在,你只是说你想修改这段代码,但你还没有描述你的目标是什么,或者你想要完成什么。您指的是“所需结果”,但没有描述那是什么。见How to Ask a Good Question。
-
另外,你是否意识到这段代码中有异步操作?你知道那是什么意思吗?
-
@jfriend00 globalvar 在函数结束时应该是 2 或 3 但它保持为 1,
标签: javascript jquery scope