- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-31-2020 07:21 AM
Is there a script that someone can share with me that will hide options in a select box depending on what catalog item it is. To provide more information we use a variable set for all access requests. One of the variables in the variable set is titled "Add or Remove Access" with the options add, remove or modify. We would only like the modify option to show if it is a certain catalog item. Is this possible?
Solved! Go to Solution.
- Labels:
-
Scripting and Coding
-
Team Development

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-01-2020 06:16 PM
Hey,
There are some issues with your code, please see my example below.
I think it should be on Load
function onLoad() {
// Array of Catalogue Item SYS_ID's to hide modify option for
var hideModifyCatItems = ['CAT_ITEM1_SYSID', 'CAT_ITEM2_SYSID', 'CAT_ITEM1_SYSID']
// Get SYS_ID of current catalog item
var thisCatItem = g_form.getUniqueValue();
// Is current item sys_id in array of items to hide modify for?
var hideModifyOnThisItem = hideModifyCatItems .indexOf(thisCatItem) > -1;
// what is the name of the variable?
var variableWithModify = 'your_variable_name';
if (hideModifyOnThisItem) {
//Parm 1 - variable name, Parm 2 - value
g_form.removeOption(variableWithModify,'modify');
} else {
g_form.addOption(variableWithModify,'modify');
}
}
ServiceNow Nerd
ServiceNow Developer MVP 2020-2022
ServiceNow Community MVP 2019-2022
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-31-2020 07:23 AM
I believe you should be able to use g_form.removeOption
Thanks,
Berny
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-01-2020 07:11 AM
I have tried code below but can not get it to work. Should I be using sys ID's in place of the actual name of the catalog item?
function onChange(control, oldValue, newValue, isLoading) {
if (isLoading || newValue != 'cat item 1' || 'cat item 2' || 'cat item 3') {
g_form.removeOption('modify');
}
else
g_form.addOption('modify');
return;
}
Again the goal is that out of the 30 catalog items that use the same variable set only three of those catalog items should see the modify option on the variable "add_remove_modify". Thoughts?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-01-2020 11:30 AM
I believe you're using the removeOption and addOption incorrectly...
The syntax is...
g_form.removeOption(<fieldName>, <choiceValue>);
If you want to add or remove the option "modify" you're missing to define the name of the Field (Choice list) where you want that option to be removed.
Thanks,
Berny
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-31-2020 07:24 AM
Here goes an example of its implementation...
Thanks,
Berny