 <p>If you must have forms always work but tracking can be sacrificed if absolutely necessary, you could just try/catch it.</p> <pre><code>$('form').submit(function(e){ try{ e.preventDefault(); var form = this; _gaq.push('_trackEvent', 'Form', 'Submit', $(this).attr('action')); //...do some other tracking stuff... setTimeout(function(){ form.submit(); }, 400); } catch (e) { form.submit(); } }); </code></pre>