Show/Hide choices on field depending on which group the user is member of

Floridalife
Giga Expert

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 ?

2016-06-08 16_40_09-ServiceNow.png

1 ACCEPTED SOLUTION

Pradeep Sharma
ServiceNow Employee
ServiceNow Employee

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


View solution in original post

26 REPLIES 26

Mike Allen
Mega Sage

You're using u_assignment_group, when you should be using sta in your if statement.


And your values in the if statement either need to be all sys_ids or you should use getDisplayValue in your variable and use all names.


Thanks guy, what about my second question below the picture? Little confuse where in the code it hide the option when the group isnt present



Sent from my iPhone


Hi mathieu,



Please refer section 6 here for more info.


http://wiki.servicenow.com/index.php?title=GlideForm_(g_form)#gsc.tab=0