5 Replies Latest reply on Dec 28, 2017 10:21 AM by Sanford Whiteman

    Restrict Free Email for Form Submission

    Emma Wu

      Hi, I have found the javascript provided on the Marketo Developer documentation about restricting free email(like gmail.com, yahoo.com etc.) upon form submission. However, when I inserted the script before the end of head card, and tested the form, it didn't work as it should.

      Can someone let me know where I did wrong, the place I inserted the code, or I need to clear up the form CSS custom code?(which I did, but still didn't work) or something else?

      Thank you!

      Here's the script:

      <script>
      (function (){
        // Please include the email domains you would like to block in this list
        var invalidDomains = ["@gmail.","@yahoo.","@hotmail.","@live.","@aol.","@outlook."];
        MktoForms2.whenReady(function (form){
         form.onValidate(function(){
         var email = form.vals().Email;
         if(email){
         if(!isEmailGood(email)) {
         form.submitable(false);
         var emailElem = form.getFormElem().find("#Email");
         form.showErrorMessage("Must be Business email.", emailElem);
        }else{
         form.submitable(true);
        }
        }
        });
        });
       
        function isEmailGood(email) {
         for(var i=0; i < invalidDomains.length; i++) {
         var domain = invalidDomains[i];
         if (email.indexOf(domain) != -1) {
         return false;
        }
        }
         return true;
        }
      })();
      </script>

      Here's the source I get the code from:

      http://developers.marketo.com/blog/restrict-free-email-domains-on-form-fill-out/

      Here's the test landing page and form:

      http://get.evault.com/Testing-Business-Email-Error-Msg_ttest.html

       

      Appreciated any feedback!