How to hide UI action button on change of field value

Supriya20
Tera Expert

Hi All,

We have a requirement to hide "request approval" button on change request form, based on the selection of field "Type" If the type is comprehensive then we need to hide RequestApproval button. 
UI action is working only for onload. So I tried using DOM manipulator in client script. but it is trowing some error's. Please let me know, how to achieve this.

Script:

document.getElementById("requestapproval").style.display = 'none'; 

Error:

find_real_file.png

 

Thanks,

Supriya.

1 ACCEPTED SOLUTION

Hi,

try this in the onChange client script of Type field

function onChange(control, oldValue, newValue, isLoading, isTemplate) {
    if (isLoading || newValue === '') {
        return;
    }
    
    if (newValue == 'comprehensive') {
        var items = $$('BUTTON').each(function(item) {
            if (item.innerHTML.indexOf('Request Approval') > -1) {
                item.show();
            }
        });
    }
	else {
		var itemss = $$('BUTTON').each(function(item) {
            if (item.innerHTML.indexOf('Request Approval') > -1) {
                item.hide();
            }
        });
	}
    //Type appropriate comment here, and begin script below

}

Regards
Ankur

Regards,
Ankur
Certified Technical Architect  ||  9x ServiceNow MVP  ||  ServiceNow Community Leader

View solution in original post

11 REPLIES 11

Hi,

Cannot be achieved without using DOM

Isolate Script checkbox for that UI action should be False

If this field is not on form then from list you can mark it False

Regards
Ankur

Regards,
Ankur
Certified Technical Architect  ||  9x ServiceNow MVP  ||  ServiceNow Community Leader

Hi Ankur,

The lsolate script check box for that UI action is false. still I'm facing the same error. Please let me know how to proceed. 

Thanks,

Supriya.

Hi,

try this in the onChange client script of Type field

function onChange(control, oldValue, newValue, isLoading, isTemplate) {
    if (isLoading || newValue === '') {
        return;
    }
    
    if (newValue == 'comprehensive') {
        var items = $$('BUTTON').each(function(item) {
            if (item.innerHTML.indexOf('Request Approval') > -1) {
                item.show();
            }
        });
    }
	else {
		var itemss = $$('BUTTON').each(function(item) {
            if (item.innerHTML.indexOf('Request Approval') > -1) {
                item.hide();
            }
        });
	}
    //Type appropriate comment here, and begin script below

}

Regards
Ankur

Regards,
Ankur
Certified Technical Architect  ||  9x ServiceNow MVP  ||  ServiceNow Community Leader

Hi,

It is working.

Thanks,

Supriya.

Glad to help.

Please mark response helpful as well.

Regards
Ankur

Regards,
Ankur
Certified Technical Architect  ||  9x ServiceNow MVP  ||  ServiceNow Community Leader