web
You’re offline. This is a read only version of the page.
close
Skip to main content
Community site session details

Community site session details

Session Id :

How to stop Quick Create form from saving

Nicolas.Plourde Profile Picture Nicolas.Plourde 240

I ran into this problem today. I wanted to use the Quick Create form and do some custom validations in JavaScript. I could of done it by Plugin but I wanted the JavaScript look & feel.

Naturally, I tried context.getEventArgs().preventDefault(). Without success. The save did stop but the save button was disabled (to prevent another save on the stack, probably) and the loading dot were still shown above the form. It seems the function was not adapted to run into a Quick Create context.

I looked up on the Web and found a post on the CRM forum describing the problem and found a partial solution. So here’s the full solution. #unsupported

onSave: function (context) {

  if (!validateStuff()) { 
    context.getEventArgs().preventDefault(); 
    setTimeout(function () { 
      top.document.getElementById('globalquickcreate_save_button_NavBarGloablQuickCreate').disabled = false;
      top.document.getElementById('globalquickcreate_loading_bar_NavBarGloablQuickCreate').style.visibility = 'hidden';
    , 0);
  }
}

Basically, I do my validation then use the supported method. Then, I fix the save button and the loading dots. Also, I wrap everything in a setTimeout to delay the execution. Otherwise, the code is done before CRM’s.

In my professional opinion, the fact it’s unsupported doesn’t bother me because we are still using the supported way. Then, we are just adding a fix. If it does bother, add a try catch inside the SetTimeout. You are garanteed bullet-proof code that won’t ever crash.

Comments

*This post is locked for comments