Re: Restricting personal emails from all forms/landing pages

Michele_Stodda1
Level 2

Hi All,

I see that this question has been asked a lot - can you block or restrict personal emails/ISPs from filling out forms?  In my investigations the answer is yes...great, but can I do this on the template level of the form or landing page so I don't have to place code on each and every landing page?

TIA!

11 REPLIES 11
Hoi_Nguyen3
Level 2

If anyone is having issue using the javascript that this article (https://nation.marketo.com/external-link.jspa?url=http%3A%2F%2Fdevelopers.marketo.com%2Fblog%2Frestr... ) provides, try swapping out the onValidate function with the onSubmit function.

My colleague and I discovered that the onValidate function can often times be buggy.

Good luck everyone!

Hoi

SanfordWhiteman
Level 10 - Community Moderator

I strongly disagree with this blanket recommendation. These are different steps in the form flow and moving callbacks around like this can be disastrous.

Please explain in detail the behavior you believe to be buggy and how to reproduce it. I've been developing with the Forms API for years, including with a commercial product, and onValidate has always worked predictably.

Hoi_Nguyen3
Level 2

It wasn't a blanket recommendation but something to try if you find your javascript not working.

We placed the script at the bottom. The javascript executed every other function properly. It was only when we swapped out onValidate with onSubmit that we got back the expected result.

Again, definitely consider other ramifications of swapping the two functions. But for us, we got what we needed by swapping onValidate with onSubmit.

SanfordWhiteman
Level 10 - Community Moderator

Show me your page with that code.

Hoi_Nguyen3
Level 2

Here it is, Sanford. https://go.greenhouse.io/demo-request-em-val.html

Request a Demo | Greenhouse

Do let us know if you find something that we missed!

Thanks,

Hoi

SanfordWhiteman
Level 10 - Community Moderator

And your repro steps?

SanfordWhiteman
Level 10 - Community Moderator

Like Josh said, in the template works fine.

I recommend packaging all forms behaviors into external JS files, so then they can be shared across templates as well as across LPs.

Michele_Stodda1
Level 2

Thanks Sanford.  Is there any documentation on how to do this? I'm fairly new to JS.

SanfordWhiteman
Level 10 - Community Moderator

Add a <script> tag referencing the external file:

<script type="text/javascript" src="https://somewhere.example.com/path/to/js/file.js"></script>

Since behaviors always reference MktoForms2, the behaviors script needs to run after /forms2.min.js, which creates the MktoForms2 object. Since Marketo-hosted LPs automatically insert /forms2.min.js in the HTML for you, the easiest way to make sure of the right order is to put your behavior <script> right before the closing </body> tag. (There are other ways to manage the dependencies but I imagine this will be easiest for you.)

Josh_Hill13
Level 10 - Champion Alumni

either is fine.

Michele_Stodda1
Level 2

Thanks Josh.

How would I do this?  This article (http://developers.marketo.com/blog/restrict-free-email-domains-on-form-fill-out/) doesn't seem to explain how to add to the design studio landing page templates.

thanks:)