diff --git a/gravity-forms/gw-disable-submission-on-enter.js b/gravity-forms/gw-disable-submission-on-enter.js index a6d9aa269..b1ef5eb49 100644 --- a/gravity-forms/gw-disable-submission-on-enter.js +++ b/gravity-forms/gw-disable-submission-on-enter.js @@ -7,10 +7,25 @@ * Download the plugin here: https://gravitywiz.com/gravity-forms-code-chest/ * 2. Copy and paste the snippet into the editor of the Custom Javascript for Gravity Forms plugin. */ -jQuery(document).on( 'keypress', '.gform_wrapper', function (e) { - var code = e.keyCode || e.which; - if ( code == 13 && ! jQuery( e.target ).is( 'textarea,input[type="submit"],input[type="button"]' ) ) { - e.preventDefault(); - return false; - } -} ); +document.addEventListener( 'keydown', function(e) { + var isGravityForm = e.target.closest( '.gform_wrapper' ) !== null; + var code = e.keyCode || e.which; + if ( code == 13 && isGravityForm ) { + var isTextarea = e.target.tagName.toLowerCase() === 'textarea'; + var isSubmitOrButton = jQuery(e.target).is('input[type="submit"], input[type="button"]'); + + // Allow default for submit/buttons. + if (isSubmitOrButton) { + return; + } + + // Allow Shift+Enter in textarea for line breaks. + if (isTextarea && e.shiftKey) { + return; + } + + // Block everything else. + e.stopImmediatePropagation(); + e.preventDefault(); + } +}, true );