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.
Thanks for the clarity here Sandy, I'll make some changes to where the code is stored and how it's getting loaded.
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.
Thanks for this clever script @SanfordWhiteman! I'm trying to implement it alongside your validation of a string field for websites (from this post) but it looks like the form can be submitted if one of the two (email or website) is correct. Is there a way I can roll these two together into one custom validator script?
Thanks for all your help!!