Custom JavaScript Handlers for Button Clicks

With the help of App “Custom JavaScript Handlers for Button Clicks”, you can implement functions in Digioh Custom JS, or on your page JS in the window object, and configure Boxes to call those functions when they are clicked.

To use this app, you will need to be a developer, or working with a developer, or know the names of functions created for you by Digioh for use with this app.

To install, from your profile menu top right, select Custom JS (Apps), find and install “Custom JavaScript Handlers for Button Clicks”, then publish your account to make the app live.

Then, on any button, you can configure button metadata with the key click_function : functionName

functionName should be the full name of the function, including scope. These are all valid:

  • window.myFunction – function declared in a <script> element
  • myFunction – shortcut for above, assumes the function assigned to window.myFunction
  • boxapi.myFunction – declared in Digioh Custom JS (Boxes) and set in boxapi object, typically After DOM Ready
  • api.myFunction – declared in Digioh Custom JS (Parent) and set in api object (equivalent to DIGIOH_API in page context)

Your custom function should accept a single object parameter. The app will call the function with an object with these standard properties you can use to handle the event:

{
 fName : "boxapi.myFunction",      // name of your function
 buttonName : "button4",           // button that was clicked
 jquerySelector : "#button4",      // button selector for jQuery
 buttonAction : "select",          // what the button will do after this handler
 buttonFieldNameDl : "custom_4",   // if button sets a field, this is its name
 fieldValBeforeClick : "",         // current value of associated field, if any
 buttonFieldValAfterClick : "val", // value that will be set, if any
 nextPage : "",                    // next page if any, from button or form submit
 currentPage : "main",             // page this button is on
 buttonSettings : [object Object]  // settings object for button (advanced users only!)
}

Here’s an example handler in your page source:
<script>
function myFunction(obj) {
   if(obj.buttonFieldNameDl)
      console.log('Changing '+obj.buttonFieldNameDl+':'+obj.fieldValBeforeClick+'->'+obj.buttonFieldValAfterClick);
}
</script>

Running into an issue or have a question? Reach out to our support team via support@digioh.com and we’ll be happy to help!