How to update CRM 2015 form field background color?

Why my code is not working in MS Dynamics CRM 2015 Update 1?

The past month we got a request to help migrate a customer from CRM 2011 to CRM 2015 Update 1, when working on the upgrade we encounter some custom code and particular dynamically form field color  changes using JavaScript, the code was correctly working on the previous version but when in the new upgraded version the solution stop working.

I notice when using IE Developer Tools the element Id was there but the JavaScript code always returns NULL value and the script was generating pop-up errors. I was looking for some issues on the javascript, used several ways to get to the element using JQuery and other 3rd party libraries, with no success.

In my effort to find a solution i review what was new on the new version CRM 2015 Update 1 (SDK 7.1) and find out that we have a new form rendering engine that was build for better performance and also  change the way manage javascript and 3rd party libraries.

The details for the rendering are located in the following link:

New Form Rendering Engine

Things that the new form rendering engine will break:

  • Any attempt to access DOM in the content iframe using JS, jQuery or other 3rd party libraries (document.getElementById() or jQuery selectors)
  • Creating a new HTML content in the parent window for persistent content (and assumed that the parent window was the main CRM iframe.
  • Window.load, parsing iframe/form URL
  • Attempting to use unsupported (non-XRM) APIs, especially undocumented ones that may have been shipped with CRM for internal usage only
  • Accessing window.parent() from a web resource that may assume for example there’s a variable set in the current window context.

 

But how I can fix the issue with dynamically update Form Fields colors?

The details on the New Form Rendering Engine have a Fallback options, that will allow the old Form Rendering Engine to work with your code.

To use the old Form Rendering Engine you will need to update the System Settings in CRM.

Navigate to Settings -> Administration -> System Settings -> General

At the bottom of the form select “YES” under “Use legacy form rendering” and click OK button to save.

The next step will be to close your IE session and clear the cache on your browser.

CRM2015-LegacyFormRendering

 

Your code will continue working the same way in previous versions.

            
   //// Update Field Label Colors
   document.getElementById("new_numbervalue_c").style.color = "White";
   document.getElementById("new_numbervalue_c").style.backgroundColor = "#66CDAA";

   //// Update Field Input Colors
   document.getElementById("new_numbervalue_i").style.color = "White";
   document.getElementById("new_numbervalue_i").style.backgroundColor = "Red";

Hope this will help you understand the form rendering updates and new features in Microsoft Dynamics CRM 2015 Update 1 (SDK 7.1).

Leave a Reply

Your email address will not be published. Required fields are marked *

Blue Captcha Image
Refresh

*