Get a first look at what's coming. The Developer Passport Australia Release Preview kicks off March 12. Dive in! 

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;

 

View solution in original post

9 REPLIES 9

Mohith Devatte
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

Raghav Sharma24
Giga 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 

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);