spivurno
2/10/2017 - 4:37 PM

Gravity Wiz // Gravity Forms // Prevent Duplicate Submissions from Double Clicks

Gravity Wiz // Gravity Forms // Prevent Duplicate Submissions from Double Clicks

<?php
/**
 * Gravity Wiz // Gravity Forms // Prevent Duplicate Submissions from Double Clicks
 * http://gravitywiz.com/
 */
add_filter( 'gform_pre_render', 'gw_disable_submit' );
function gw_disable_submit( $form ) {

	if( defined( 'DOING_AJAX' ) && DOING_AJAX ) {
		return $form;
	}

	?>

	<script type="text/javascript">

		jQuery( document ).ready( function( $ ) {

			var formId = '<?php echo $form['id']; ?>';

			$( '#gform_submit_button_' + formId ).on( 'click', function( event ) {

				if( hasPendingFileUploads( formId ) ) {
					return;
				}

				var $submitCopy = $( this ).clone();

				$submitCopy
					.attr( 'id', '' )
					.prop( 'disabled', true )
					.attr( 'value', 'Processing...' )
					.insertBefore( $( this ) );

				$( this ).css( { visibility: 'hidden', position: 'absolute', transition: 'all 0s ease 0s' } );

			} );

			function hasPendingFileUploads() {

				if( ! window[ 'gfMultiFileUploader' ] ) {
					return false;
				}

				var pendingUploads = false;

				$.each( gfMultiFileUploader.uploaders, function( i, uploader ) {
					if( uploader.total.queued > 0 ) {
						pendingUploads = true;
						return false;
					}
				} );

				return pendingUploads;
			}

		} );

	</script>

	<?php

	return $form;
}