The Issue
I discovered the other day that “g_form.removeOption()” does not work on variables on a Catalog Task or Requested Item form. It works great on fields, and nearly every other g_form function works great on variables, but removeOption, clearOption, and a few others simply refuse to work.
If someone from ServiceNow is reading this, please consider this a vote to spend an entire “named” release simply fixing stuff like this rather than pushing new functionality.
The “Fix”
Simply put, I wrote a function to handle this. Feel free to copy and paste and use!
Credit to Keith Mills for providing the seeds of this code here.
variableRemoveOption("variable_name", "choice_list_value"); //This is a workaround to avoid the issue of ServiceNow's bug //in getControl when handling variables on Catalog Tasks and Requested Items function variableRemoveOption(field, value) { var handler = g_form.getPrefixHandler('v_dropdown'); var map = handler.handlerObject.nameMap; var id; for (i = 0; i < map.length; i++){ var name = map[i].prettyName; if (name == field) { id = map[i].realName; break; } } if(id) { var elem = g_form.getElement(id); var opts = elem; for(var j=0; j<opts.length; j++) { if(opts[j].value == value) { elem.remove(j); break; } } } }
Categories: Developers, Tips and Tricks
Leave a Reply