The Zurich release has arrived! Interested in new features and functionalities? Click here for more

Requirement to abort catalog request submission if requested for is female

Snow-Man
Tera Contributor

Hello everyone,

this is the code I have written but I am unable to abort catalog form submission. What might be the issue?

//Client Script

function onSubmit() {
   //Type appropriate comment here, and begin script below
   var ga = new GlideAjax('abortfemalerequester');
   ga.addParam('sysparm_name', 'getreqGender');
   ga.addParam('sysparm_id', g_form.getValue('requested_for'));
   ga.getXML(getResponse);

   function getResponse(response){
	var answer = response.responseXML.documentElement.getAttribute('answer');
	alert (answer);
	if (answer == "true"){
		return true;
	}else {
		return false;
	}
   }
}

//SCRIPT INCLUDE
var abortfemalerequester = Class.create();
abortfemalerequester.prototype = Object.extendsObject(AbstractAjaxProcessor, {
    getreqGender: function() {
        var gr = new GlideRecord('sys_user');
		var reqId = this.getParameter('sysparm_id');
		gr.addQuery('sys_id', reqId);
		gr.query();
		if (gr.next()){
			gr.log('Gender is: ' + gr.gender);
			var gender = gr.gender;
			var ans;
			if (gender == 'Male'){
				gs.log('You are inside male condition');
				return (true);
			}else if (gender == "Female"){
				gs.log('You are inside female condition');
				return (false);
			}
		}

    },
    type: 'abortfemalerequester'
});

Thanks in advance 🙂

3 REPLIES 3

palanikumar
Giga Sage

Hi,

 

getXML function will not wait for the AJAX to run. So you need to stop submitting the form after getXML command and submit the form inside the AJAX code. Please try the below code:

function onSubmit() {
   //Type appropriate comment here, and begin script below
   var ga = new GlideAjax('abortfemalerequester');
   ga.addParam('sysparm_name', 'getreqGender');
   ga.addParam('sysparm_id', g_form.getValue('requested_for'));
   ga.getXML(getResponse);
   return false;

   function getResponse(response){
	var answer = response.responseXML.documentElement.getAttribute('answer');
	alert (answer);
	if (answer == "true"){
		g_form.submit();
	}
   }
}
Thank you,
Palani

Thank you, Palani, from where can I know such things?

 

Additionally, do you have any suggestions on how I might discover practical applications for scripting? Any links or resources you could provide would be greatly appreciated. Thank you...

g_form.submit () doesn’t work in native desktop, it shows an error. How can we resolve it ?