Client script to make a field read only based on a condition

test1231998
Tera Contributor

Hi,

I have a field called as business service(reference field)on my incident form,Whenever business service is Unify(one of the values in the field) .I have to make the field read only after submission of the form.

ie.whenever the business service is Unify then when i save the form the field business service should be read only.

I wrote the onsubmit client script as below.

function onSubmit() {
    //Type appropriate comment here, and begin script below
        var bs = g_form.getValue('business_service');
        if (bs == '4ba556dc1b04a4101f99db15ec4bcb0b') {
            g_form.setReadonly('business_service', true);
        }
}

but it isnt working.

when i click on save it becomes read only once the form is saved it is not shown as read only

Please can anyone help me

 

23 REPLIES 23

Hi,

So the script/approach I shared works fine.

you want editable or mandatory?

As per your question it's required to be read-only

Try to make it editable and then mandatory

Regards
Ankur

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

its already editable and mandatory

its already editable and mandatory

its already editable and mandatory

Hi,

so to make it readonly first make it non-mandatory

function onLoad() {
    //Type appropriate comment here, and begin script below
        var bs = g_form.getValue('business_service');
        if (bs == '4ba556dc1b04a4101f99db15ec4bcb0b' && !g_form.isNewRecord()) {

            g_form.setMandatory('business_service', false);
            g_form.setReadonly('business_service', true);
        }
}

Regards
Ankur

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