Basic AJAX Form Submission Demo
NOTE: This script assumes jQuery is being loaded on your site.
<form id="myForm" action="/forms/cases.ashx?form=demo_ajax_example&jsonResponse=1" onsubmit="onMyFormSubmit(); return false;" method="post" enctype="multipart/form-data"> <label for="FirstName">First Name*</label> <input type="text" id="FirstName" name="FirstName"> <label for="LastName">Last Name*</label> <input type="text" id="LastName" name="LastName"> <label for="Email">Email*</label> <input type="text" id="Email" name="Email"> <label for="NotRequired">Not Required</label> <input type="text" id="NotRequired" name="NotRequired"> <label for="ReCAPTCHAV2">reCAPTCHA v2*</label> <div class="g-recaptcha" data-sitekey="6Lf2cGcUAAAAABbL4aDrclASNZx9S3uaI9EvpvlI"></div> <input class="button" type="submit" value="Submit"> </form> <div id="msgResponse"></div> <script> function onMyFormSubmit() { var $f = $('#myForm'); var $r = $('#msgResponse'); var gr = grecaptcha.getResponse(); if(gr.length == 0) { $r.css('color', 'red').html('reCaptcha not valid'); grecaptcha.reset(); } else { if($f.data("sent")) { $r.css('color', 'red').html("Form submission is already in process."); } else { $f.data("sent", true); $.ajax( { type: 'POST', dataType : "json", url: $f.attr('action'), data: $f.serialize(), success: function(msg) { var formResponse = msg; console.log(msg); if (formResponse.Error == 0) { var msg = ""; for(var i=0;i<formResponse.Fields.All.length;i++) { msg += formResponse.Fields.All[i].Name + ': ' + formResponse.Fields.All[i].Value + '<br>'; } $f.fadeOut(300); $r.css('color', 'green').fadeIn(500).html('<h4>Thank you!</h4><p>' + msg + '</p>'); } else { var msg = ""; for(var i=0;i<formResponse.ErrorMessages.length;i++) { msg += formResponse.ErrorMessages[i] + "<br>"; } $r.css('color', 'red').fadeIn(500).html(msg); grecaptcha.reset(); $f.data("sent", false); } }, error: function(msg) { $r.css('color', 'red').fadeIn(500).html('error'+msg); $f.data("sent", false); return false; } }); } } } </script>