Join the #BuildWithBuildAgent Challenge! Get recognized, earn exclusive swag, and inspire the ServiceNow Community with what you can build using Build Agent.  Join the Challenge.

Clear all variable fields when category changes

Khalnayak
Kilo Sage

Hi all,

I have a catalog item which has 10 different categories. Each category has a UI policy in place which displays different fields based on category.

I want to clear all variable values when the category changes. I tried using the 'clear variable value' option within UI policy action but that caused issues for me and ServiceNow have said to not use that option and use a client script instead.

I found an onchange client script on the community article and tried using that but it is causing the fields to not show up at all now.

When I am selecting a category, none of the fields are displaying.

 

find_real_file.png

 

 Please can you advise on this?

1 ACCEPTED SOLUTION

try

function onChange(control, oldValue, newValue, isLoading) {
    if (isLoading || newValue == '') {
        return;
    }

    var fieldArr = ['request_type', 'item_to_return_label', 'business_justification', 'select_item', 'return_address_label', 'address_line_1', 'return_address2', 'address_line_2', 'city', 'post_code', 'formatter', 'state_province', 'country', 'formatter2', 'please_provide_any_additional_details', 'justification', 'request_type_website', 'website_address', 'additional_details_website', 'justification_website', 'request_type_software', 'software_application', 'request_details_software', 'justification_software', 'request_type_security', 'request_details_security', 'request_details_helpadvice', 'request_type_useraccounts', 'software_application_useraccounts', 'request_details_useraccounts', 'business_justification_useraccounts', 'address_request', 'address_line_1_request', 'address_line_2_request', 'city_request', 'post_code_request', 'formatter3', 'state_province_request', 'country_request']; //add comma separated field names which you want to clear here


    for (var i = 0; i < fieldArr.length; i++) {
        g_form.clearValue(fieldArr[i]);
    }

}

View solution in original post

5 REPLIES 5

Mike Patel
Tera Sage

Field Array needs to belike below (each value with quotes separated by comma)

var fieldArr = ['request_type', 'item_to_return_label', 'XXXXXX'];

Hi Mike,

I changed the field array as you suggested, but still getting the same issue.

 

function onChange(control, oldValue, newValue, isLoading) {
   if (isLoading || newValue == '') {
      return;
   }

var fieldArr=['request_type','item_to_return_label','business_justification','select_item','return_address_label','address_line_1','return_address2','address_line_2','city','post_code','formatter','state_province','country','formatter2','please_provide_any_additional_details','justification','request_type_website','website_address','additional_details_website','justification_website','request_type_software','software_application','request_details_software','justification_software','request_type_security','request_details_security','request_details_helpadvice','request_type_useraccounts','software_application_useraccounts','request_details_useraccounts','business_justification_useraccounts','address_request','address_line_1_request','address_line_2_request','city_request','post_code_request','formatter3','state_province_request','country_request']; //add comma separated field names which you want to clear here


   for(var field in fieldArr){


   g_form.clearValue(fieldArr[field]);


   }
   
}

 

find_real_file.png

try

function onChange(control, oldValue, newValue, isLoading) {
    if (isLoading || newValue == '') {
        return;
    }

    var fieldArr = ['request_type', 'item_to_return_label', 'business_justification', 'select_item', 'return_address_label', 'address_line_1', 'return_address2', 'address_line_2', 'city', 'post_code', 'formatter', 'state_province', 'country', 'formatter2', 'please_provide_any_additional_details', 'justification', 'request_type_website', 'website_address', 'additional_details_website', 'justification_website', 'request_type_software', 'software_application', 'request_details_software', 'justification_software', 'request_type_security', 'request_details_security', 'request_details_helpadvice', 'request_type_useraccounts', 'software_application_useraccounts', 'request_details_useraccounts', 'business_justification_useraccounts', 'address_request', 'address_line_1_request', 'address_line_2_request', 'city_request', 'post_code_request', 'formatter3', 'state_province_request', 'country_request']; //add comma separated field names which you want to clear here


    for (var i = 0; i < fieldArr.length; i++) {
        g_form.clearValue(fieldArr[i]);
    }

}

Thanks Mike this has worked!