The CreatorCon Call for Content is officially open! Get started here.

How to use UI Page in OnSubmit client script

Supriya25
Tera Guru

Hi All,

Please help me on below issue

How to validate  UI Page value in Onsubmit

 

OnSubmit:

function onSubmit() {

if (g_form.getActionName() == "resolve_incident") {
var gm = new GlideModal('confirm_changes');
gm.setTitle('Confirm');
gm.setWidth(400);
gm.render();

 

image.png


if(user clicked on 'Do Change' button )
{
g_form.setReadonly('field 1',false);
g_form.setReadonly('field 2',false);

g_form.addErrorMessage("Change values on fields");

return false;
}

if(user clicked on 'Confirmed' button)

{

validateDates();

return true;

}

function checkManagers()

{

if(........)

{

return false;

}else{

return true;

}

}return true;
}
}

}

Supriya25_0-1673872105865.png

 

 

HTMl :

<?xml version="1.0" encoding="utf-8" ?>

<j:jelly trim="false" xmlns:j="jelly:core" xmlns:g="glide" xmlns:j2="null" xmlns:g2="null">

<p>Are you sure about your changes ?</p>

<br/>

<div style="float: right">

<g:dialog_buttons_ok_cancel ok="return sendvalue()" ok_type="button" ok_text="Confirmed" ok_style_class="btn btn-primary" cancel="return destroyWindow()" cancel_type="button" cancel_text="Do Change" cancel_style_class="btn btn-default" />

</div>

</j:jelly>

 

Client script :

function sendvalue {

    destroyWindow();

    return true;

}

function destroyWindow() {

    GlideDialogWindow.get().destroy();

    return false;

}

 

 

 

13 REPLIES 13

Omkar Kumbhar
Mega Sage

@Supriya25 ,

Please refer to the below link

https://servicenowguru.com/system-ui/glidedialogwindow-advanced-popups-ui-pages/

 

 

If I was able to help you with your case, please click the Thumb Icon and mark as Correct.

I got Solution from sources.

 

 

g:ui_form>
	<div id = "u_fpc_message_area123"  style="min-height: 100px; overflow: hidden;" />

	<!-- action buttons -->
	<div class="modal-footer">
		<span class="pull-right">
			<g:dialog_buttons_ok_cancel ok="uFpcCloseWindow('ok')"  cancel="uFpcCloseWindow('cancel')" cancel_text="change"/>
		</span>
	</div>

</g:ui_form>


Client script :
(function() {
    //script that runs onload of the page
    try {
        //remove focus from the "X" button
        document.activeElement.blur();

        //set focus to the Cancel button so the ESC key can be used to close the window
        gel("cancel_button").focus();

        //add event listener to the "X" button so we can tell if it was clicked
        var el = document.getElementById("u_fpc_modal_simple_confirm_closemodal");
        el.addEventListener("click", uFpcCloseX);

        //drop the message into the designated area
        var messageArea = gel("u_fpc_message_area123");
        messageArea.innerHTML = decodeURIComponent("${sysparm_message}");

    } catch (err) {}
})();


function uFpcCloseWindow(button) {
    var gdw = GlideDialogWindow.get();
    var f = ""; //function that will be called on close of the window, if any

    switch (button) {
        case "ok":
            f = gdw.getPreference("uFpcOnCloseOk");
            break;
        case "cancel":
            f = gdw.getPreference("uFpcOnCloseCancel");
            break;
        case "x":
            f = gdw.getPreference("uFpcOnCloseX");
            break;
    }

    //is there something to run?
    if (typeof(f) == 'function') {
        try {
            f.call(gdw);
        } catch (e) {}
    }
    gdw.destroy();
    return false;
}
//function called when the "X" button is clicked
function uFpcCloseX() {
    uFpcCloseWindow("x");
}

 

 

OnSubmit:

 

function onSubmit() {
    if (g_form.getActionName() == "resolve_incident") {

        var message = "Your Contact type :" + g_form.getValue('contact_type');
        var modalWindow = new GlideModal("u_fpc_modal_simple_confirm");
        try {
            modalWindow.setBackdropStatic(true);
        } catch (err) {}
        modalWindow.setWidth(600);
        modalWindow.setTitle("Simple Modal Confirm Test");
        modalWindow.setPreference("sysparm_message", encodeURIComponent(message));

        //set the functions we want to run after the OK button is clicked
        modalWindow.setPreference('uFpcOnCloseOk', ClickOnOk.bind(this));
        modalWindow.setPreference('uFpcOnCloseCancel', ClickOnClose.bind(this));
        modalWindow.setPreference('uFpcOnCloseX', uFpcOnCloseX.bind(this));

        modalWindow.render();

        return false;
    }

    function ClickOnOk() {
        g_form.addWarningMessage("The 'OK' button was clicked (" + Date.now() + ")");
        // gsftSubmit(null, g_form.getFormElement(), "u_fpc_learning_simple_modal_confirm"); //MUST call the 'Action name' set in this UI Action
        
            if (g_form.getValue('contact_type') == 'email') {
                g_form.addErrorMessage('Contact type should not be "Email"');
                return false;
            }
            if (g_form.getValue('category') == 'hardware') {
                g_form.addErrorMessage('Category should not be "Hardware"');
                return false;
            }      
            return true;
        }

    function ClickOnClose() {
        alert("The confirm dialog was cancelled (" + Date.now() + ")");
        g_form.addWarningMessage("The confirm dialog was cancelled (" + Date.now() + ")");
        return false;
    }
    function uFpcOnCloseX() {
        g_form.addWarningMessage("'X' was clicked to close the confirm window (" + Date.now() + ")");
    }
}

 

 

1. after clicking on Ok button button do validation remaining script.

if every thing is fine then auto-execute/save 

function : ClickOnOk()

 

Could you please help me on that?

Hello @Supriya25 ,

The above script which you shared is working prefectly fine. 

You can add your validation in the 

function ClickOnOk() {
        g_form.addWarningMessage("The 'OK' button was clicked (" + Date.now() + ")");
        // gsftSubmit(null, g_form.getFormElement(), "u_fpc_learning_simple_modal_confirm"); //MUST call the 'Action name' set in this UI Action
        
            if (g_form.getValue('contact_type') == 'email') {
                g_form.addErrorMessage('Contact type should not be "Email"');
                return false;
            }
            if (g_form.getValue('category') == 'hardware') {
                g_form.addErrorMessage('Category should not be "Hardware"');
                return false;
            }      
            return true;
        }

 

Here I have added 

if (g_form.getValue('category') == 'software') {
g_form.addErrorMessage('Contact type should not be "software"');
return false;
}
if (g_form.getValue('subcategory') == 'email') {
g_form.addErrorMessage('Category should not be "email"');
return false;
}

 

Please let me know what validations are you going to perform

 

Thanks,

Omkar

If I was able to help you with your case, please click the Thumb Icon and mark as Correct.

if (g_form.getValue('category') == 'software') {
g_form.addErrorMessage('Contact type should not be "software"');
return false;

""" Reload the Form"""""
}
if (g_form.getValue('subcategory') == 'email') {
g_form.addErrorMessage('Category should not be "email"');
return false;

""" Reload the Form"""""
}

 

if everything is fine then Save the record.