Description
This filter can be used to register custom methods for triggering calculations.
Usage
gform.addAction( 'gform_post_calculation_events', function ( mergeTagArr, formulaField, formId, calcObj ) { // do stuff } );
Parameters
- mergeTagArr array
The merge tag being processed.
mergeTagArr[0] contains the full merge tag e.g. {Field label:ID:modifier}
mergeTagArr[1] contains the field or input ID e.g. 2
mergeTagArr[3] contains the modifier(s) including the colon e.g. :value
mergeTagArr[4] contains the modifier(s) without the colon e.g. value -
formulaField Javascript Object
The current calculation field object. e.g.
{"field_id":3,"formula":"{:1}+{:2}","rounding":""}
formId integer
The ID of the form in use.
calcObj Javascript Object
The calculation object.
Example
This example shows how you can trigger calculations by adding or removing List field rows or modifying the value of a List field input.
gform.addAction( 'gform_post_calculation_events', function ( mergeTagArr, formulaField, formId, calcObj ) { var fieldId = parseInt( mergeTagArr[1] ), fieldSelector = '#field_' + formId + '_' + fieldId; if ( jQuery( fieldSelector + ' table.gfield_list' ).length == 1 ) { jQuery( fieldSelector ) .on( 'click', '.add_list_item', function () { jQuery( fieldSelector + ' .delete_list_item' ).removeProp( 'onclick' ); calcObj.bindCalcEvent( fieldId, formulaField, formId, 0 ); } ) .on( 'click', '.delete_list_item', function () { gformDeleteListItem( this, 0 ); calcObj.bindCalcEvent( fieldId, formulaField, formId, 0 ); } ) .on( 'change', ':input', function () { calcObj.bindCalcEvent( fieldId, formulaField, formId, 0 ); } ); } } );
Placement
Your code snippet can be placed in a HTML field on your form or in a theme custom JavaScript file.
Source Code
This filter is located in js/gravityforms.js