Built something you're proud of? Tell the story. A quick G2 review of App Engine or Build Agent helps other developers see what's possible on ServiceNow. Share your experience.

GlideModal not working, getting console error

Suresh K3
Giga Expert

Hi everyone,

I need a pop it must have only "OK" button.

So i am using OOB model box code, while using that i getting  Error - There is a JavaScript error in your browser console . I checked in console - ReferenceError: GlideModal is not defined. How do i use this model. Can any one assist me

Here is the java script which i have used

 
   

   if(g_scratchpad._action_confirmed) {
        return true;
    }
    
    var dialog = new GlideModal('glide_modal_confirm'false300);
    dialog.setTitle(new GwtMessage().getMessage('Confirmation'));
    dialog.setPreference('body'new GwtMessage().format("Are you sure to save?"));
    dialog.setPreference('focusTrap'true);
    dialog.setPreference('onPromptComplete', doComplete);
    dialog.setPreference('onPromptCancel', doCancel);
    
    dialog.render();
    
    return false;
    
    
   
6 REPLIES 6

Not applicable

Hello @Suresh K3 ,

 

To use `GlideModal` in ServiceNow, you need to ensure that the `GlideModal` script include is loaded. Here's an updated code snippet and step-by-step guidance to implement the pop-up using `GlideModal`:

 

1. Load GlideModal Script Include: Confirm that the `GlideModal` script include is loaded in your instance. To do this, navigate to "System Definition" > "Script Includes" in the application navigator. Search for `GlideModal` and ensure it exists. If it doesn't exist, create a new script include with the name `GlideModal` and the following script content:

var GlideModal = Class.create(GlideWindow, {
initialize: function (title, readOnly, width, height) {
GlideWindow.prototype.initialize.call(this, 'dialog_form', readOnly, width, height);
this.setTitle(title);
this.setClassName('glide_modal');
this.setBody(TEMPLATE);
this.setFooter(FOOTER);
}
});


2. Update the JavaScript Code: Replace your existing JavaScript code with the following updated code:

if (g_scratchpad._action_confirmed) {
return true;
}

var dialog = new GlideModal('Confirmation', false, 300);
dialog.setPreference('body', "Are you sure to save?");
dialog.setPreference('focusTrap', true);
dialog.setPreference('onPromptComplete', doComplete);
dialog.setPreference('onPromptCancel', doCancel);

dialog.render();

return false;

 

In this code, we directly create an instance of `GlideModal` without using the `'glide_modal_confirm'` template. The title is set directly as `'Confirmation'`, and the body message is set as a string.

 

3. Define the `doComplete` and `doCancel` Functions: Implement the `doComplete` and `doCancel` functions according to your requirements. These functions will be called when the user clicks the OK or Cancel buttons in the pop-up.

 

4. Test the Implementation: Save the updated code and test the functionality. The pop-up should appear with the "OK" button, and the `doComplete` and `doCancel` functions should be triggered accordingly.

Make sure to clear any browser cache or reload the ServiceNow instance to ensure the updated script includes and code changes are applied.

Note: If you continue to encounter the `ReferenceError: GlideModal is not defined` error after following these steps, ensure that the `GlideModal` script include is correctly loaded and accessible in your instance.

If this helped you in any way, please hit the like button/mark it helpful. So it will help others to get the correct solution.

 

regards,

Prasad

I have been trying to figure out this GlideModal issue in my PDI (Utah).

I was getting this error in the system log:

com.glide.script.RhinoEcmaError: "GlideModal" is not defined.
sys_ui_action.1f36aab047f321108f89fa8bd36d43e9.script : Line(3) column(0)
1: gs.info("In signature UI Action starting");
2:
==> 3: gDialog = new GlideModal('accept_signature');
4: gDialog.setTitle('Signature Pad');
5: gDialog.setWidth(500);
6: var rec_sys_id = g_form.getUniqueValue();

 

After following your step 1 I got:

 

com.glide.script.RhinoEcmaError: undefined is not a function.
sys_ui_action.1f36aab047f321108f89fa8bd36d43e9.script : Line(3) column(0)
1: gs.info("In signature UI Action starting");
2:
==> 3: gDialog = new GlideModal('glide_confirm_basic');
4: //gDialog = new GlideModal('accept_signature');
5: gDialog.setTitle('Signature Pad');
6: gDialog.setWidth(500);

 

And this:

 

com.glide.script.RhinoEcmaError: "GlideWindow" is not defined.
sys_script_include.d98198ae477321108f89fa8bd36d43c4.script : Line(1) column(0)
==> 1: var GlideModal = Class.create(GlideWindow, {
2: initialize: function (title, readOnly, width, height) {
3: GlideWindow.prototype.initialize.call(this, 'dialog_form', readOnly, width, height);
4: this.setTitle(title);

 

GlideWindow is not in the system definition -> script includes either.

I looked in the production instance (Tokyo) I work with and neither GlideModal nor GlideWindow are in the system definition -> script includes there.

 

Why are these instances missing these functions? Are they not out of the box scripts?
Should I open a HI ticket?

Not applicable

Hi @Steve Stivers1 ,

 

Please consider opening a High Impact (HI) ticket with ServiceNow support to seek assistance from their technical experts. They can provide guidance and investigate any potential issues or misconfigurations in your instance.

 

-Prasad

I don't know if you've solved your issue, but it looks like you have the GlideModal code setup in a server-side UI Action.  GlideModal is a client-side class, so you need to set the UI Action to be able to run in the browser:

 

JimCoyne_1-1689315788546.png