#javascript #custom-object #archer
#javascript #пользовательский объект #archer
Вопрос:
Итак, в основном у меня есть требование создать проверку во вложенной форме, чтобы запретить пользователю отправлять обратную дату в запросе на продление. Я использовал проверку пользовательского объекта, но есть проблема, связанная с отображением исходного сохранения, сохранения и закрытия вместе с сохранением, сохранением и закрытием пользовательского объекта.
Проверка пользовательского объекта работает, но отображение исходного сохранения, сохранения и закрытия является серьезной проблемой.
Пожалуйста, найдите код ниже.
<script type="text/javascript">
//Define date field ids
var dateOccurredFldId = 22418;
// For todays date;
Date.prototype.today = function () {
return (((this.getMonth() 1) < 10)?"0":"") (this.getMonth() 1) "/" ((this.getDate() < 10)?"0":"") this.getDate() "/" this.getFullYear();
}
// For the time now
Date.prototype.timeNow = function () {
return ((this.getHours() < 10)?"0":"") this.getHours() ":" ((this.getMinutes() < 10)?"0":"") this.getMinutes() ":" ((this.getSeconds() < 10)?"0":"") this.getSeconds();
}
Sys.Application.add_load(function() {
// Hijack Save and Close Button
$('#master_btnSave').clone().attr('id', 'master_customBtnSave').insertBefore('#master_btnApply');
$('#master_btnSave').hide();
$('#master_customBtnSave').unbind('click').prop("onclick", null).click(function(){ DateCheck('save');return false;});
// Hijack Save Button
$('#master_btnApply').clone().attr('id', 'master_customBtnApply').insertBefore('#master_btnApply');
$('#master_btnApply').hide();
$('#master_customBtnApply').unbind('click').prop("onclick", null).click(function(){ DateCheck('apply');return false;});
});
function DateCheck(type) {
//Get Date Field Values
var dateOccurred = new Date(String($CM.getFieldValue(dateOccurredFldId, false)));
var currentDate = new Date();
var dateTime = currentDate.today() ' ' currentDate.timeNow();
var currentDateTime = new Date(dateTime);
//Set Alert Box Title
var title = 'Warning';
if(dateOccurred) {
if(dateOccurred <= currentDate) {
WarningAlert('The <b>Entension Date</b> cannot be lesser than the <b> Current Date Created</b>','',title);
return false;
} else {
SaveApply(type)
}
} else {
SaveApply(type)
}
}
function SaveApply(type) {
if (type == 'save') {
$('#master_btnSave').click();
} else if (type == 'apply') {
$('#master_btnApply').click();
}
}
</script>
Комментарии:
1. Ахмад, какую версию Archer ты используешь?
2. Моя текущая версия — 6.7 P3
Ответ №1:
Попробуйте обновленный код ниже.
<script type="text/javascript">
//Define date field ids
var dateOccurredFldId = 22418;
// For todays date;
Date.prototype.today = function () {
return (((this.getMonth() 1) < 10)?"0":"") (this.getMonth() 1) "/" ((this.getDate() < 10)?"0":"") this.getDate() "/" this.getFullYear();
}
// For the time now
Date.prototype.timeNow = function () {
return ((this.getHours() < 10)?"0":"") this.getHours() ":" ((this.getMinutes() < 10)?"0":"") this.getMinutes() ":" ((this.getSeconds() < 10)?"0":"") this.getSeconds();
}
// Hijack Save Button
$('#master_btnApply1, #master_btnApplyIcon').unbind('click').prop("onclick", null).click(function(){ DateCheck('Apply');return false;})
// Hijack Save And Close Button
$('#master_btnSave1').unbind('click').prop("onclick", null).click(function(){ DateCheck('Save')});
// Hide Right-Click Save and Save and Close Right-Click Menu Items
$('.rmLink:Contains("Save")').parent().parent().hide();
$('.rmLink:Contains("Save and Close")').parent().parent().hide();
function DateCheck(action) {
//Get Date Field Values
var dateOccurred = new Date(String($CM.getFieldValue(dateOccurredFldId, false)));
var currentDate = new Date();
var dateTime = currentDate.today() ' ' currentDate.timeNow();
var currentDateTime = new Date(dateTime);
//Set Alert Box Title
var title = 'Warning';
if(dateOccurred) {
if(dateOccurred <= currentDate) {
WarningAlert('The <b>Entension Date</b> cannot be lesser than the <b> Current Date Created</b>','',title);
return false;
} else {
SaveApply(action)
}
} else {
SaveApply(action)
}
}
function SaveApply(action) {
if (type == 'Save') {
ShowAnimationAndPostback('master$btn' action);
} else if (type == 'Apply') {
ShowAnimationAndPostback('master$btn' action);
}
}
</script>
Комментарии:
1. Теперь он проверяется и показывает только 1 сохранение, сохранение и закрытие. Проблема в том, что на самом деле он не сохраняется даже с учетом будущих дат. Таким образом, он проверяет, как и ожидалось, но не сохраняет запись.