Skip to main content

loop through variables client side - Classic UI

 https://makandracards.com/makandra/1339-check-whether-an-element-is-visible-or-hidden-with-javascript


https://community.servicenow.com/community?id=community_question&sys_id=345507addbd8dbc01dcaf3231f961998


https://community.servicenow.com/community?id=community_question&sys_id=0acc2842db7bdb801cd8a345ca9619b5


https://community.servicenow.com/community?id=community_question&sys_id=5e9d0f2ddb9cdbc01dcaf3231f961911


var allVariables = document.getElementById('variable_map').getElementsByTagName('item'); for (var i = 0; i < allVariables.length; i++) { var item = allVariables[i]; var itemName = item.getAttribute('qname').toString(); //alert(item.id); var item_el = document.getElementById(g_form.resolveNameMap(itemName)); //alert(itemName + ' ' + window.getComputedStyle(item_el).display); var iWidth = (item_el.offsetWidth); var iHeight = (item_el.offsetHeight); if (iWidth == 0 && iHeight == 0) { //alert("blanking item " + itemName); g_form.setValue(itemName, ''); } } $("variable_map").querySelectorAll("item").forEach(function(item) { var variable = item.getAttribute("qname"); alert(variable); }); //--classic UI (if needed)--unfortunately g_form.isVisible doesnt work in classic if (g_form.getValue('sn_request_type' == 'Bulk') || g_form.getValue('sn_request_type' == 'Deactivate')) { var allVariables = document.getElementById('variable_map').getElementsByTagName('item'); for (var i = 0; i < allVariables.length; i++) { try { var item = allVariables[i]; var itemName = item.getAttribute('qname').toString(); //alert(item.id); var item_el = document.getElementById(g_form.resolveNameMap(itemName)); alert(itemName + ': ' + g_form.resolveNameMap(itemName)); //alert(itemName + ' ' + window.getComputedStyle(item_el).display); var iWidth = (item_el.offsetWidth); var iHeight = (item_el.offsetHeight); if (iWidth == 0 && iHeight == 0 && g_form.getValue(itemName) != 'true') { //--be wary of checkboxes //alert("blanking item " + itemName); if (g_form.getValue('sn_request_type' == 'Deactivate')) { if (itemName != 'sn_service_offering_to_deactivate') { //--be wary of reference fields g_form.setValue(itemName, ''); } } else { g_form.setValue(itemName, ''); } } } catch (ex) { } } } }

Comments

Popular posts from this blog

ServiceNow check for null or nil or empty (or not)

Haven't tested these all recently within global/local scopes, so feel free to have a play! option 1 use an encoded query embedded in the GlideRecord , e.g.  var grProf = new GlideRecord ( 'x_cls_clear_skye_i_profile' ); grProf . addQuery ( 'status=1^ owner=NULL ' ); grProf . query (); even better use the glideRecord  addNotNullQuery or addNullQuery option 2 JSUtil.nil / notNil (this might be the most powerful. See this link ) example: if ( current . operation () == 'insert' && JSUtil . notNil ( current . parent ) && ! current . work_effort . nil ())  option 3 there might be times when you need to get inside the GlideRecord and perform the check there, for example if the code goes down 2 optional routes depending on null / not null can use gs.nil : var grAppr = new GlideRecord ( 'sysapproval_approver' ); var grUser = new GlideRecord ( 'sys_user' ); if ( grUser . get ( 'sys_id' , current . approver )){...

Code a pause/wait - gs.sleep or gs.wait alternative, pause script for specified seconds (timer)

Code a pause/wait - gs.sleep / gs.wait alternative, pause script for specified seconds (timer)  e.g. 10 seconds: do_sleep ( 10000 ); function do_sleep ( milliseconds ) { var start = new Date (). getTime (); for ( var i = 0 ; i < 1e7 ; i ++) { if (( new Date (). getTime () - start ) > milliseconds ){ gs . print ( 'waking up!' ); break ; } } }