Find your people. Pick a challenge. Ship something real. The CreatorCon Hackathon is coming to the Community Pavilion for one epic night. Every skill level, every role welcome. Join us on May 5th and learn more here.

How to hide a mandatory field using catalog client script?

The Matrix
Tera Contributor

Hi All,

I've written a onChange catalog client script on Subcategory field. whenever a specific subcategory is selected then the description field should be visible and should become mandatory. After Subcategory value changes back to --None-- the description field should be hidden (vice versa). I have written below script. It is not working. 

And we are adding category and subcategory choices via catalog client script. As these variables are from Variable set. How can I achieve this same functionality via catalog UI Policy. 

if (newValue == 'create_a_new_local_gcajob/sub_family') {
        g_form.setDisplay('description', true);
        g_form.setMandatory('description', true);
}
else 
{
        g_form.setMandatory('description', true); 
        g_form.setDisplay('description', true); 
}
        

 

10 REPLIES 10

nawalkishos
Kilo Sage

Hi @The Matrix ,

please review below code- 

 

- Catalog Client Script

- Applies to: the Catalog Item that includes your variable set

- Script Type: onChange

- Field name: subcategory

 

function onChange(control, oldValue, newValue, isLoading) {
    if (isLoading) return;

    // Replace with your actual variable names
    var descVar = 'description';
    var subcat = newValue;

    // Example condition: when subcategory = 'hardware_issue'
    if (subcat === 'hardware_issue') {
        g_form.setDisplay(descVar, true);
        g_form.setMandatory(descVar, true);
    } else if (subcat === '') {
        // When set back to --None--
        g_form.setDisplay(descVar, false);
        g_form.setMandatory(descVar, false);
        g_form.clearValue(descVar);
    } else {
        g_form.setDisplay(descVar, false);
        g_form.setMandatory(descVar, false);
    }
}

 

If you found my response helpful, please mark it as helpful and accept it as the solution.

Thank you
Nawal Singh

Hi @nawalkishos Thanks for your help. Still no luck. It is not hiding mandatory fields

Hi @The Matrix ,

 

When hiding a mandatory field in ServiceNow, you must first make it non-mandatory before hiding it.

// Make the field optional before hiding
if (newValue == "create_a_new_local....") {
g_form.setDisplay('description', true);
g_form.setMandatory('description', true);
} else {
g_form.setMandatory('description', false);
g_form.setDisplay('description', false);
}

Hi @The Matrix , 

Is your issue resolved or still facing the issue, let me know the issue so i will assist you on that!!

 

If you found my response helpful, please mark it as helpful and accept it as the solution.

Thank you
Nawal Singh