Return False is not working in onsubmit client script

akhila13
Tera Expert

In the below script return false is not working.Can anyone help me

 

 

function onSubmit() {
var ga = new GlideAjax('IncidentAssignmentGroup');
ga.addParam('sysparm_name', 'canResolveIncident');
ga.addParam('sysparm_state', g_form.getValue('state'));
ga.addParam('sysparm_group', g_form.getValue('assignment_group'))
ga.getXML(setState);
function setState(response) {
var answer = response.responseXML.documentElement.getAttribute("answer");
g_form.addInfoMessage(answer);
// g_form.addErrorMessage("test");
//retrun false;
if (answer == 'Cannot Resolve') {
g_form.addErrorMessage("Cannot change the state to resolved");
return false;
}

 


}
}

1 ACCEPTED SOLUTION

I got the issue  the function should close after if, try below:

if (g_scratchpad.isFormValid) {
return true;
}

var actionName = g_form.getActionName();
var ga = new GlideAjax('IncidentAssignmentGroup');
ga.addParam('sysparm_name', 'canResolveIncident');
ga.addParam('sysparm_state', g_form.getValue('state'));
ga.addParam('sysparm_group', g_form.getValue('assignment_group'))
ga.getXML(setState);
function setState(response) {
var answer = response.responseXML.documentElement.getAttribute("answer");
g_form.addInfoMessage(answer);
// g_form.addErrorMessage("test");
//retrun false;
if (answer != 'Cannot Resolve') {

g_scratchpad.isFormValid = true;
g_form.submit(actionName);
}

}
g_form.addErrorMessage("Cannot change the state to resolved");
return false;

 


Raghav
MVP 2023
LinkedIn

View solution in original post

9 REPLIES 9

Mohith Devatte
Tera Sage
Tera Sage

hello @akhila13 ,

please follow this article to prevent on submit client script when it is return false;

 

https://support.servicenow.com/kb?id=kb_article_view&sysparm_article=KB0779964

 

Hope this helps 

 

Mark my answer correct if this helps 

Thanks

RaghavSh
Kilo Patron

@akhila13 return false does not work in onSubmit() GlideAjax as it makes a async call to server.

There is a ServiceNow KB article which helps you to achieve this. 

Refer : https://support.servicenow.com/kb?id=kb_article_view&sysparm_article=KB0783579 


Raghav
MVP 2023
LinkedIn

Can you please help me to use this code in my script.I modified the script but its not working

 

 

 

function onSubmit() {


if (g_scratchpad.isFormValid) {
return true;
}

var ga = new GlideAjax('IncidentAssignmentGroup');
ga.addParam('sysparm_name', 'canResolveIncident');
ga.addParam('sysparm_state', g_form.getValue('state'));
ga.addParam('sysparm_group', g_form.getValue('assignment_group'))
ga.getXML(setState);
function setState(response) {
var answer = response.responseXML.documentElement.getAttribute("answer");
g_form.addInfoMessage(answer);
// g_form.addErrorMessage("test");
//retrun false;
if (answer == 'Cannot Resolve') {
g_form.addErrorMessage("Cannot change the state to resolved");
return false;
}
else {
g_scratchpad.isFormValid = true;
g_form.submit();
}

}
}

You have missed :

 

var actionName = g_form.getActionName();

and 

g_form.submit(actionName);


Raghav
MVP 2023
LinkedIn