- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-08-2016 04:42 PM
I am trying to hide some of the choice in a reference type field depending on which group the user is part of, at first i was trying to filter it based on what the u_assignment_group field was set to on the form, this is the client script i was using but it didnt work (even tried SysID for the group), if this is the recommended way can you advise what looks wrong in the code?
function onChange() {
var sta = g_form.getValue('u_assignment_group');//get the value of state
//var cat = g_form.getValue('category');//get the value of category
//var com = g_form.getValue('company');//get the value of company
if (u_assignment_group == "8dd9bdaa37c45e009325dcc773990e25" || u_assignment_group == "SA" || u_assignment_group == "INF")/*if state is resolved AND category is Inventory AND company is HQ, then:*/ {
//now populate the choices:
g_form.addOption('call_type', 'Option 1', 'Option 1', 1);
//g_form.addOption('call_type', 'Option 2', 'Option 2', 2);
//g_form.addOption('call_type', 'Option 3', 'Option 3', 3);//etc...
} }
Then i started playing with the dependent field but we have a handful of teams and i was forced to duplicate the choice for each team and use the sysid, very time consuming and messy, is there a better way ?
Solved! Go to Solution.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-08-2016 04:49 PM
HI Mathieu,
I see that you are not fetching the value of assignment group field i.e you should use
var assignment = g_form.getValue('u_assignment_group');
now in your if loop replace compare it based on assignment and also I see that other loops you have used assignment group display value and it should be sys_id.
var assignment = g_form.getValue('u_assignment_group'); //will return sys_id
var assignment = g_form.getDisplayBox('u_assignment_group').value; //will return display value
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-09-2016 09:47 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-09-2016 10:05 AM
I'm wondering if that return is not tripping it up. Remove that and see what happens.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-09-2016 10:37 AM
Still no go, it does remove it fine but doesnt add it when ISS is added to Group field, is onChange adequate?
ANother approach would be to check what group the currently logged on user is a member of, if ISS/SA/INF then show the choice, what would the script be like in that case?
This is how it looks after removing return
function onChange() {
var group = g_form.getDisplayBox('u_assignment_group');//get the value of group
//var cat = g_form.getValue('category');//get the value of category
//var com = g_form.getValue('company');//get the value of company
if (group == "ISS" || group == "SA" || group == "INF")/*if group is SA OR ISS OR INF, then:*/ {
//now populate the choices:
g_form.addOption('call_type', 'sc_request', 'Request', 1);
//g_form.addOption('call_type', 'Option 2', 'Option 2', 2);
//g_form.addOption('call_type', 'Option 3', 'Option 3', 3);//etc...
}else{
g_form.removeOption('call_type', 'sc_request');
}
}
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-09-2016 10:42 AM
You would have to do that using GlideAjax. It's doable, but this should be working, so let's crack on here.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-09-2016 10:50 AM
Got it. It is a reference field. It does not like getDisplayBox. Try this:
function onChange() {
var group = g_form.getReference('assignment_group', hideStuff);//get the value of group
//var cat = g_form.getValue('category');//get the value of category
//var com = g_form.getValue('company');//get the value of company
function hideStuff(group){
if (group.name == "ISS" || group.name == "SA" || group.name == "INF")/*if group is SA OR ISS OR INF, then:*/ {
//now populate the choices:
g_form.addOption('subcategory', 'sc_request', 'Request', 1);
//g_form.addOption('call_type', 'Option 2', 'Option 2', 2);
//g_form.addOption('call_type', 'Option 3', 'Option 3', 3);//etc...
}else{
g_form.removeOption('subcategory', 'sc_request');
}
}
}