Support Article
Validation triggers before OnChange in dropdown field
SA-90524
Summary
When a grid with a dropdown field has the Required property as 'Always', the validation triggers before OnChange in dropdown.
This occurs when using the Internet Explorer 11 browser.
Error Messages
Not Applicable.
Steps to Reproduce
- Add a dropdown field inside a grid
- Select the Required dropdown property 'Always'
- Run the flow using Internet Explorer 11 browser
Root Cause
A defect in Pegasystems’ code or rules.
Resolution
Perform the following local-change:Add the below script in UserWorkForm:
<script>
pega.u.d.attachOnload(function(){
if(pega.ui.grid){
pega.ui.grid.prototype.focusFirstElement = function(content, formElementsOnly) {
var Dom = pega.util.Dom;
if(!content) {return;}
if(Dom.getFirstChild(content) && Dom.getFirstChild(content).nodeName.toUpperCase() == "TD" && content.getAttribute("expanded") != "true" && content.nodeName.toUpperCase() == "TR") {
Dom.getFirstChild(content).tabIndex="0";
}
var focustags = content.getElementsByTagName("*");
for(var len =0 ; len < focustags.length; len++){
felem = focustags[len];
if(felem.disabled) {
continue;
}
var fNodeName = felem.nodeName.toUpperCase();
if ((fNodeName == "A" || fNodeName == "BUTTON" || fNodeName == "SELECT" || fNodeName == "INPUT"|| fNodeName == "TEXTAREA" || ((fNodeName=="TD" || fNodeName=="TH" || fNodeName=="SPAN" || fNodeName=="DIV" || fNodeName=="IMG" || fNodeName=="I") && felem.outerHTML.split(">")[0].toUpperCase().indexOf("TABINDEX") != -1))&& (felem.type != "hidden" && ((felem.currentStyle && felem.currentStyle.visibility != "hidden" && felem.currentStyle.display != "none") || (window.getComputedStyle && window.getComputedStyle(felem, "").visibility != "hidden" && window.getComputedStyle(felem, "").display != "none")))) {
if(formElementsOnly && (fNodeName == "TD" || fNodeName == "A" ||(fNodeName=="SPAN" && felem.className=="pageIndex"))) {
continue;
}
try {
if(pega.env.ua.ie){
var fireFocus = function(focusedElement){
return function(){
focusedElement.focus();
if(focusedElement.select) focusedElement.select();
}
};
domUtils.setRequestAnimationFrame(fireFocus(felem));
}else{
felem.focus();
}
}catch(e){return false;}
return true;
}
}
};
}
},false);
</script>
Published December 19, 2019 - Updated October 8, 2020
Have a question? Get answers now.
Visit the Collaboration Center to ask questions, engage in discussions, share ideas, and help others.