We're reclaiming inactive PDIs to keep them available for active builders. Learn what's changing, who's affected, and how to protect your work. Read More

Hide variable choice based on another field in a Service Catalog item

daniellethomson
Tera Expert

I have an onChange script I'd like to run on a catalog item but my script doesn't seem to be working. Any thoughts?

function onChange(control, oldValue, newValue, isLoading) {

  if (isLoading || newValue == '') {

  return;

  }

var type = g_form.getValue('employee_type');

  if(type == 'Contractor' || type == 'Consultant'){

      g_form.removeOption('company','92944b3937e4c280e96da6d2b3990ecf');

  }

}

1 ACCEPTED SOLUTION

No I don't think that is possible. Since it is a reference field but you are just displaying it as a drop down menu. You need to use reference qualifier on this field. But I don't think you can dynamically remove the option yet not removing the record from the reference table.


View solution in original post

13 REPLIES 13

Its a reference field to the company table


Abhinay Erra
Giga Sage

Make sure your variable/ field name "employee_type" is correct. Make sure you are using choice values not the choice labels.



function onChange(control, oldValue, newValue, isLoading) {


  if (isLoading || newValue == '') {


  return;


  }



var type = g_form.getValue('employee_type'); // make sure this is a correct variable/ field name


  if(type == 'Contractor' || type == 'Consultant'){ // put the choice values not the choice labels


      g_form.removeOption('company','92944b3937e4c280e96da6d2b3990ecf'); // put choice value in the second parameter


  }


}


Thanks Abhinay. I double/triple checked everything and changed the company to the value but it's still not working. The company field is a reference to a table.


I have the following script working perfectly on the same form so I feel it's an issue with g_form.removeOption.



function onChange(control, oldValue, newValue, isLoading) {


  if (isLoading || newValue == '') {


  return;


  }



var type = g_form.getValue('employee_type');


if(type == 'Employee' || type == 'Intern'){


      g_form.setValue('company','92944b3937e4c280e96da6d2b3990ecf');


  }


}


Is there a way I can say if employee or intern set value otherwise hide this company in the script that is working?