Join the #BuildWithBuildAgent Challenge! Get recognized, earn exclusive swag, and inspire the ServiceNow Community with what you can build using Build Agent.  Join the Challenge.

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
Mega 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