Is there a new way to do this since this old Blog Article in 2014. This doesn't seem to work for me.
If you reference this old post (https://developers.marketo.com/blog/restrict-free-email-domains-on-form-fill-out/) it says you can block whatever domain you want on the front side of the form. But I believe some calls have changed, and the script is not working. Has anyone else run across this issue?
This seems like a out of date method, is there a better way?
Solved! Go to Solution.
Use the new FormsPlus::EmailPattern JS.
You can see a demo here:
MktoForms2 :: FormsPlus-EmailPattern [simple demo]
Download the JS library from the CodePen HTML pane (direct download link here) and re-host it in your Design Studio.
Then add the code from the CodePen JS pane anywhere after your form embed. Add blockable domains to the invalidDomains array. It accepts 3 different formats:
mailbox@example.com - matches one specific email address
example.com - matches all mailboxes @ that domain
mailbox@ - blocks that mailbox @ any domain
(actually it does even more cool stuff but I haven't had time to document it yet!)
Because they failed to account for onValidate chain in their code, setting submittable(true) no matter what else was running.
Hey Sandy,
I've just been testing this script here and our forms use a different button (for some other webhooks) - I see the script triggers correctly but the button we use seems to ignore the ability to block the form submission. I can see it says "must be a valid email" but it doesn't seem to stop the submission. Any chance you could glance at it quickly?
It's been a while (and a few companies) since I've asked you a question 🙂 hope all is well.
-Justin
Hi Justin,
1st: Even though you're loading the FormsPlus::EmailPattern JS library, I don't see that you're using it. It's just available for use.
2nd: The call to the external enforcement service (wouldn't call it a webhook, as it's an API called from the browser) needs to be interlocked with the FormsPlus.EmailPattern.match method. It doesn't make sense to call enforcement if the form isn't ready to be posted at all because the email is from an unwanted domain. So the match should run first; then if there's no match, you call enforcement; then when the enforcement API returns, you submit the form.
Where would I add this code to a Marketo landing page template where the form is hidden or enabled?
On a Marketo LP, custom form behaviors JS should go just before the closing </body> tag. This is because you don't know exactly where in the body the Forms 2.0 lib will be injected, so you have to make sure you're after that.
Thanks for the quick reply. Here's a link to my marketo landing page in question, https://info.leandata.com/G2_L2AReport.html.
I entered <!-- FormsPlus libraries -->
<script id="teknklFormsPlus-EmailPattern-1.0.3" src="https://info.leandata.com/rs/554-VZA-399/images/formsplus-emailpattern-1.0.3.js"></script>
<!-- /FormsPlus libraries --> right before the /body however it still doesn't appear to be working.
Page Source: view-source:https://info.leandata.com/G2_L2AReport.html
You seem to have miscopied the FormsPlus::EmailPattern JS file before reuploading it to your server. Maybe you pasted it into Word or something? You need to download the actual file in its original form.
Here's the test website I setup with I believe is the correct js code this time around. However, the script now blocks any form submission and does not display the error message.
https://info.leandata.com/Testing---Email-Validation_test.html
Thanks for the clarity here Sandy, I'll make some changes to where the code is stored and how it's getting loaded.
Thanks @SanfordWhiteman
I am trying to make this work, but first try was unsuccessful.
You Said I should upload a copy of that JS to my Marketo Library correct, then call that version. It's acting like it's not calling it.
You'd need to provide a link to your page. Can't tell what's going on without that.
@SanfordWhiteman I don't have it on a public server you can get to unfortunately but can you confirm I am calling the correct code:
This would be what I would call under my form code correct.
<!-- FormsPlus libraries -->
<script id="teknklFormsPlus-EmailPattern-1.0.3" src="https://your-marketo-domain/rs/765-HCI-927/images/formsplus-emailpattern-1.0.3.js"></script>
<!-- /FormsPlus libraries -->
Thank You Very Much @SanfordWhiteman , This is a Powerful little script! Nicely done.
I look forward to it, by the way the reason it didn't work for me originally was the order it was firing in, incase anyone else runs into that.