Good day all.
TL;DR: I am having trouble getting an onLoad method to reliably print an evaluated value to a field.
The form is as follows:
Stock message contains:
<span id='stock_msg'></span>
I have a javascript onLoad method that compares the minimum and current stock:
// Create min and current stock variables var minStock = document.thisItem.getProperty("_minimum_stock"); var currStock = document.thisItem.getProperty("_current_stock"); // Bring in HTML field span var field = document.getElementById("stock_msg"); // Create stockMsgValue variable var stockMsgValue = null; // if current stock is less than or equals to minimum stock if(currStock <= minStock) { stockMsgValue = "<p style='color: red'>Not enough Stock!</p>"; } else { stockMsgValue = "<p style='color: green'>Stock levels look good</p>"; } // Write to HTML field span field.innerHTML += stockMsgValue;
I did something similar with Stock message 2, but included the javascript in the HTML field directly:
<div id="Message"></div> <div id="min"></div> <div id="curr"></div> <script> var divText = document.getElementById("Message"); var divCurr = document.getElementById("curr"); var divMin = document.getElementById("min"); var currStock = document.thisItem.getProperty("_current_stock"); var minStock = document.thisItem.getProperty("_minimum_stock"); if(currStock <= minStock ) { var textVal = "<span style='color: red';>Insufficient</span>"; } else { var textVal = "<span style='color: green';>Sufficient</span>"; } divText.innerHTML += textVal; divMin.innerHTML += "Minimum stock: " +minStock; divCurr.innerHTML += "Current stock: " + currStock; </script>
The problem is that it works for a little bit, and then the evaluation does not reflect the correct values.
Some examples:
Any ideas?
Thanks