abort catalog submission if requested_for gender is female
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎02-20-2024 05:30 AM
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'
});
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎02-28-2024 03:38 AM
Hi @Southsayer
Below post could be helpful :
Probably, your Catalog item is getting submitted before you get a response from the script include. Please refer the above post and try modifying your Script Include and Client Script accordingly. Also, as suggested by @Anurag Tripathi , you could have used an On-Change Client Script as well where On-Change of Requested for Variable, you can call your Script Include to get the gender and set a hidden field accordingly in your catalog item. In the On-Submit Client Script, you can refer to the value of the hidden field to decide whether to allow the submission or not.
Thanks & Regards
Amit Verma
Please mark this response as correct and helpful if it assisted you with your question.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎02-28-2024 04:49 AM
Hi @Southsayer ,
Asynchronous GlideAjax not works for onSubmit client script. Instead of using asynchronous use synchronous glide ajax with getXMLWait() .
Regards,
Rohini Sane
