Я пользуюсь ServiceNow. Мне нужно проверить форму onSubmit. Я использую GlideAjax со сценарием для проверки данных. Как передать переменные из функции Ajax calendarDate (response) в другие функции в скрипте клиента? Когда функция ajax для скольжения возвращает сообщение об ошибке, я хочу установить для переменной isValid значение false.ServiceNow Javascript, передавая переменные из функций GlideAjax
Я сделал это легко с помощью клиентских скриптов, которые не включают GlideAjax. Я просто устанавливаю переменную isValid в результат функции, такой как var isValid = checkLnrDates();
Однако установка переменной, равной вызову функции при использовании GlideAjax, не возвращает никакого значения, которое я могу использовать. Возможно, я не понимаю, как вызываются и обрабатываются функции GlideAjax.
Каталог Client Script onSubmit
function onSubmit() {
var isValid = checkLnrDates();
if (isValid == false) {
g_form.submitted = false;
return false;
}
}
function checkLnrDates() {
var start = g_form.getValue('start_date');
//Check calendar date format valid YYYY-MM-DD
//Script include ClientDateTimeUtils checks the input data
var ajaxCalendarDate = new GlideAjax('ClientDateTimeUtils');
ajaxCalendarDate.addParam('sysparm_name', 'validateCalendarDate');
ajaxCalendarDate.addParam('sysparm_userDate', start);
ajaxCalendarDate.getXML(calendarDate);
}
function calendarDate(response){
//This is where we get the response returned from the ClientDateTimeUtils script include ajax function
var answer = response.responseXML.documentElement.getAttribute("answer");
if (answer != 'true'){
g_form.showFieldMsg('start_date', answer,'error');
//How can I pass the value of a variable to the function above? I want to set isValid to false
isValid = false;
return false;
}
}
Хорошо спасибо за совет, который я перешел на использование getXMLWait. Я проверил его с помощью ajaxCalendarDate.getAnswer(); и это позволяет мне передавать переменные из этой функции в onSubmit !!! поэтому я могу решить, следует ли отправлять форму или нет на основе этого вывода. Большое вам спасибо. – pengz