JenniferRah
Mega Sage

You have to put it in a function for portal. Try this:

function onSubmit() {

    if (g_scratchpad.isFormValid) //need to check to see if you should process or not
        return true;

    var a = g_form.getValue('group_name');
    var ga = new GlideAjax('isGroupCreated');
    ga.addParam('sysparm_name', 'isNameExists');
    ga.addParam('Group_Name', a);
    ga.getXMLAnswer(getResponse);
    return false;
}

function getResponse(response) {
    var answer = response;
    var mem = g_form.getValue('EU06') ? g_form.getValue('EU06').split(',').length : 0;

    if (answer == 'false') {
        alert('Group wih the same name already exists:\nPlease try with Different Name');
        return false;
    } else if (answer == 'true') {
        alert('Name is Unique');
        var anna = confirm('Please Confirm Your Request Details: \nGroup Name: ' + g_form.getValue('group_name') + '\nDescription: ' + g_form.getValue('EU02') + '\nGroup Email: ' + g_form.getValue('EU03') + '\nManager for the group: ' + g_form.getDisplayBox('EU04').value + '\nNumber of Members: ' + mem);
        if (anna == false) {
            return false;
        }
    }
    var actionName = g_form.getActionName();
    g_scratchpad.isFormValid = true;
    g_form.submit(actionName);
}

 

View solution in original post

Hey Jennifer, thats right the thing I was looking out for. TYSM!

Hi 

 var anna = confirm('Please Confirm Your Request Details: \nGroup Name: ' + g_form.getValue('group_name') + '\nDescription: ' + g_form.getValue('EU02') + '\nGroup Email: ' + g_form.getValue('EU03') + '\nManager for the group: ' + g_form.getDisplayBox('EU04').value + '\nNumber of Members: ' + mem);

Hi in your Solution, the above part is not working in the sense, that its not showing any confirm and asking for ok or cancel 

I pulled that statement directly out of your initial code. Is the alert statements above it popping up? So you are sure you are making it to that statement? If so, you may try adding .toString() after each of your getValue statements. Sometimes it's picky like that.

Hello @JenniferRah 

I have written the following code for my requirement. I need to check whether the user's manager is active or not. If the manager is inactive, a confirmation popup should appear before submitting the request. If the user clicks "OK," the form should submit; otherwise, if they click "Cancel," the form should not be submitted.

I have written the client script and script include code below.

Could you please guide me on this?

Thank you!

 

function onSubmit() {
  
    var gr = new GlideAjax('check_hrs');
    gr.addParam('sysparm_name', 'manager_active');
    gr.addParam('sysparm_manager', g_form.getValue('subject_person_s_manager'));
    gr.getXMLAnswer(setAnswer);

    return false; // Prevent form submission until the response is received
}

function setAnswer(answer) {
    if (answer == 'false') {
        var anna = confirm('Please Confirm: User does not have a manager.');
        if (!anna) {
            return false; // Stop execution if the user cancels
        }
    }
  if (g_scratchpad.isFormValid) {
        return true;
    }

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

 

Script Include:

 

var check_hrs = Class.create();
check_hrs.prototype = Object.extendsObject(global.AbstractAjaxProcessor, {

    demo: function() {


        var sdate = this.getParameter('sysparm_form');
        var gh = new GlideDateTime(sdate);

        var gd = new GlideDateTime();
        var gdd = gd.getDisplayValue();
        var gddd = new GlideDateTime(gdd);

        var gt = GlideDateTime.subtract(gddd, gh);
        var sec = gt.getNumericValue();
        if (sec > 14400000) {
            return true;
        } else {
            return false;
        }
    },

    check_manager: function() {
        var gr = new GlideRecord('sys_user');
        gr.get(this.getParameter('sys_user_id'));
        if (gr.manager) {
            return true;
        } else {
            return false;
        }
    },

    manager_active: function() {
        var gr = new GlideRecord('sys_user');
        if(gr.get(this.getParameter('sysparm_manager'))){
			if(gr.active.toString() == 'true'){
				return true;
			}else{
				return false;
			}
            
        } else{
            return 'No Manager';
        }
    },
    type: 'check_hrs'
});