14 Replies Latest reply on May 11, 2017 1:47 PM by Grégoire Michel

    Email validation in Marketo through Javascript

    Phillip Wild

      Hi Community!

       

      We've been finding that unfortunately Marketo forms have pretty crappy email validation on them as default. Using the "Email" field means that a user is only required to enter an email with an "@" symbol - they don't need a period "." This means we get a bunch of junk emails that fail validation in our other systems.

       

      Here's the code my developer gave me to solve this:

       

      <script>

        MktoForms2.loadForm("//app-ab06.marketo.com", "110-AIL-152", 1330, function(form){

            form.onValidate(function(){

              // Get the values

              var vals = form.vals();

              var re = new RegExp(/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i);

       

       

              if(re.test(vals.Email)){

                form.submittable(true);

              }

              else{

                form.submittable(false);

                var emailElem = form.getFormElem().find("#Email");

                form.showErrorMessage("Please enter a valid email format", emailElem);

              }

            });

          })

      </script>

       

      If I was using a "self-guided" landing page, I know how to implement this - simply create a HTML element and drop this script in the HTML code section. But with a guided landing page, it doesn't seem to work.

       

      I've tried two ways - dumping it at the bottom of the raw code (after "editing draft" on my template), below where the other scripts are, and secondly, dropping it into a section via the landing page editor (much like I would with a "self-guided" page). Neither seems to work.

       

      Any ideas? Is there an easier way to do this? I know you can "mask input" with fields in Marketo forms - is this a better way of doing it? Will there be disadvantages if I use this field type instead of "Email" field type?

       

      Thanks in advance!

       

      Phil