Modify Font Color on a readOnly field

salvadormarchan
Kilo Guru

Hello All,

How do you modify the font color when the field is set to ReadOnly?

Out of the box, the background is grayed and the font is also grayed (slightly darker) when it's readOnly. I was asked to make the font color to black.

I appreciate your responses.

Thanks!

Dor

1 ACCEPTED SOLUTION

geoffcox
Giga Guru

This was my first assignment on ServiceNow, many years ago!



We have a global client script called "Fix Readonly Field Colors":



function onLoad(){


  window.setTimeout(fix_readonly_field_colors,500);


}



function fix_readonly_field_colors() {


  var i;


  var the_inputs = document.getElementsByTagName('input');


  for (i = 0; i < the_inputs.length; i++) {


          if (the_inputs[i].disabled || the_inputs[i].readonly) {


              the_inputs[i].style.color = '#000000';


              the_inputs[i].style.backgroundColor = '#eeeeee';


          }


  }


  the_inputs = document.getElementsByTagName('select');


  for (i = 0; i < the_inputs.length; i++) {


          if (the_inputs[i].disabled || the_inputs[i].readonly) {


              the_inputs[i].style.color = '#000000';


              the_inputs[i].style.backgroundColor = '#eeeeee';


          }


  }


  the_inputs = document.getElementsByTagName('textarea');


  for (i = 0; i < the_inputs.length; i++) {


          if (the_inputs[i].disabled || the_inputs[i].readonly) {


              the_inputs[i].style.color = '#000000';


              the_inputs[i].style.backgroundColor = '#eeeeee';


          }


  }


}


View solution in original post

14 REPLIES 14

Looks like bianca.vaccarini will have to convert it to a question first.


This discussion has been switched to a question. You should now see the ability to mark a correct or helpful response.


bianca.vaccarini you are the best!


I modified the function. Please see below...



function fix_readonly_field_colors() {


    var elemArray = ['input', 'select', 'textarea'];


    var i, j;


    for (j = 0; j < elemArray.length; j++) {


          var the_inputs = document.getElementsByTagName(elemArray[j]);


          for (i = 0; i < the_inputs.length; i++) {


                if (the_inputs[i].disabled || the_inputs[i].readonly) {


                      the_inputs[i].style.color = '#000000';


                      the_inputs[i].style.backgroundColor = '#FCFCFC';


                }


          }


    }


}


So here is the same function, now implemented in one line with jQuery!



function fix_readonly_field_colors() {


      jQuery(".readonly, .disabled, :disabled").css("color","#000000").css("background-color","#eeeeee");


}



Cheers,


                        Geoff.