diff --git a/web/js/utils.js b/web/js/utils.js
--- a/web/js/utils.js
+++ b/web/js/utils.js
@@ -1514,26 +1514,28 @@
                 }
               }
               if (keyArray[i].field==null || (keyTarget!=null && keyTarget.name!=null && isIdenticalField(keyArray[i].field, keyTarget.name))) {
-                var evalfuncTrl = replaceEventString(keyArray[i].evalfunc, keyTarget.name, keyArray[i].field);
-                try {
-                  if (!isWindowInMDIContext || typeof keyArray[i].evalfunc !== "object") {
-                    eval(evalfuncTrl);
-                  } else {
-                    var LayoutMDI = getFrame('LayoutMDI');
-                    LayoutMDI.OB.Layout.ClassicOBCompatibility.Keyboard.executeKSFunction(keyArray[i].evalfunc[0], keyArray[i].evalfunc[1]);
+                if (keyArray[i].key !== null && keyArray[i].key !== '' && keyArray[i].key !== 'null' && typeof keyArray[i].key !== 'undefined') {
+                  var evalfuncTrl = replaceEventString(keyArray[i].evalfunc, keyTarget.name, keyArray[i].field);
+                  try {
+                    if (!isWindowInMDIContext || typeof keyArray[i].evalfunc !== "object") {
+                      eval(evalfuncTrl);
+                    } else {
+                      var LayoutMDI = getFrame('LayoutMDI');
+                      LayoutMDI.OB.Layout.ClassicOBCompatibility.Keyboard.executeKSFunction(keyArray[i].evalfunc[0], keyArray[i].evalfunc[1]);
+                    }
+                    thereIsShortcut = true;
+                    if (propagateEnter == false && keyArray[i].key == 'ENTER') { // Special ENTER case logic to not propagate if there is default action
+                      propagateEnter = true;
+                      return false;
+                    }
+                    if ((!keyArray[i].propagateKey || isGridFocused) && !(keyArray[i].key == 'TAB' && isOBTabBehavior == false)) {
+                      return false;
+                    } else {
+                      //return true;
+                    }
+                  } catch (e) {
+                    return true;
                   }
-                  thereIsShortcut = true;
-                  if (propagateEnter == false && keyArray[i].key == 'ENTER') { // Special ENTER case logic to not propagate if there is default action
-                    propagateEnter = true;
-                    return false;
-                  }
-                  if ((!keyArray[i].propagateKey || isGridFocused) && !(keyArray[i].key == 'TAB' && isOBTabBehavior == false)) {
-                    return false;
-                  } else {
-                    //return true;
-                  }
-                } catch (e) {
-                  return true;
                 }
               }
             }
@@ -1594,26 +1596,28 @@
               if ((!keyArray[i].propagateKey || isGridFocused) && !(keyArray[i].key == 'TAB' && isOBTabBehavior == false)) 
                 //stopKeyPressEvent();
               if (keyArray[i].field==null || (keyTarget!=null && keyTarget.name!=null && isIdenticalField(keyArray[i].field, keyTarget.name))) {
-                var evalfuncTrl = replaceEventString(keyArray[i].evalfunc, keyTarget.name, keyArray[i].field);
-                try {
-                  if (!isWindowInMDIContext || typeof keyArray[i].evalfunc !== "object") {
-                    eval(evalfuncTrl);
-                  } else {
-                    var LayoutMDI = getFrame('LayoutMDI');
-                    LayoutMDI.OB.Layout.ClassicOBCompatibility.Keyboard.executeKSFunction(keyArray[i].evalfunc[0], keyArray[i].evalfunc[1]);
-                  }
-                  thereIsShortcut = true;
-                  if ((!keyArray[i].propagateKey || isGridFocused) && !(keyArray[i].key == 'TAB' && isOBTabBehavior == false)) {
-                    return false;
-                  } else {
+                if (keyArray[i].key !== null && keyArray[i].key !== '' && keyArray[i].key !== 'null' && typeof keyArray[i].key !== 'undefined') {
+                  var evalfuncTrl = replaceEventString(keyArray[i].evalfunc, keyTarget.name, keyArray[i].field);
+                  try {
+                    if (!isWindowInMDIContext || typeof keyArray[i].evalfunc !== "object") {
+                      eval(evalfuncTrl);
+                    } else {
+                      var LayoutMDI = getFrame('LayoutMDI');
+                      LayoutMDI.OB.Layout.ClassicOBCompatibility.Keyboard.executeKSFunction(keyArray[i].evalfunc[0], keyArray[i].evalfunc[1]);
+                    }
+                    thereIsShortcut = true;
+                    if ((!keyArray[i].propagateKey || isGridFocused) && !(keyArray[i].key == 'TAB' && isOBTabBehavior == false)) {
+                      return false;
+                    } else {
+                      return true;
+                    }
+                  } catch (e) {
+                    startKeyPressEvent();
                     return true;
                   }
-                } catch (e) {
                   startKeyPressEvent();
                   return true;
                 }
-                startKeyPressEvent();
-                return true;
               }
             }
           } else if (keyArray[i].field == null || (keyTarget!=null && keyTarget.name!=null && isIdenticalField(keyArray[i].field, keyTarget.name))) {
