How do I change the background color of a field based on content?

Randy Spindel
Giga Contributor

We have a field on a task form called User Access Type.

find_real_file.png

By default, this field has a light yellow background via a configured style.

find_real_file.png

We would like to change the background color of this field to red when the field is Delete rather than Add.

I attempted to set another style that would set the background to red when the value was delete, but that does not appear to work. When I attempt to set a value on the existing configured style, it also appears to stop working for reasons I can't figure out.

I attempted to create a client script to change the background onLoad when the field value is delete, but scripting is not my strong suit and I have not been successful so far.

1 ACCEPTED SOLUTION

Updating my code to have you use:

function onLoad() {
    //Type appropriate comment here, and begin script below
    var element = g_form.getElement('u_user_access_type');
    var accessType = g_form.getValue('u_user_access_type');
    if (accessType == 'delete') {
        element.style.backgroundColor = "red";
    }
}

Simply replace 'u_user_access_type' with the actual back-end name of the field (not label) and this will work.

I did this with the number field on Incident just to play around and this is how it turned out:

find_real_file.png

Please mark reply as Helpful/Correct.

Thanks!

View solution in original post

11 REPLIES 11

Thank you, this did the trick. Much appreciated!

Hey Allen,

I'm using essentially the same script and for the life of me I cannot get the field color to set. I tried it your way, and also a switch case way - even the default flag on the switch case method isn't working. Any thoughts?

I verified that the currency fields are parsing correctly into numbers, and reporting those numbers, via logging. I also added an 'alert' into Try 1, which works. Not sure what the issue is here.

 

function onChange(control, oldValue, newValue, isLoading) {

    var element = g_form.getElement('u_actual_cost');
    var formElement = g_form.getFormElement();

    var actualCost = g_form.getValue('u_actual_cost');
    var plannedCost = g_form.getValue('u_total_planned_cost');

    var actual = parseFloat(actualCost.split(';')[1]);
    var planned = parseFloat(plannedCost.split(';')[1]);

    // Try 1
    /* if (actual > planned) {
        element.style.backgroundColor = "red";
    } */

    // Try 2
    switch (newValue) {
        case (actual > planned):
            element.style.backgroundColor = "tomato";
            break;
        default:
            element.style.backgroundColor = "tomato";
            break;
    }
}

 

Thank you.

Hi Adam,

If you don't mind, can you create a new question and put all of this in that? That way we can assist you within that context? Feel free to @mention me there.

Thanks!

Hello Allen ,

 Can we implement similar color update via business rule?.

Thanks.

 please let me know how do i change color of the text not just background color