I would like to restrict any lead with a country other than US or Canada from filling out a form. How could I go about this?
How about using two layered forms? You could setup Form 1 to get only the Country. Depending on the input of that form, Form 2 can either be displayed or you can pop a message that says "your country is shunned from my awesome stuff." You could also do nothing after Form 1 if country wasn't US or Canada.
Form 1 could be regular HTML form outside of Marketo. You can pass the value to the Marketo Form (Form 2) on submit.
I could be dreaming this approach, but let me know if you decide to try it.
There are several ways. Hussam AlMukhtar is correct that you could try a dual form.
Sanford Whiteman may have other ideas.
Thanks, Josh Hill. Yeah, I don't see a clear reason for a dual form here. I do in general support the idea of multi-step forms, posting more data to the server at each step -- but only if you're really going to do something with each step of input. Having a form post that serves only to discard the data seems to be a waste. On the other hand, if you actually want to keep the (anonymous) lead's Country choice, perhaps to report on later (you could see if there's a country worth expanding your business into) then posting the data to your Mkto db makes a lot of sense.
You could also have what's a single Marketo form that only shows the Country dropdown and doesn't show the Submit button nor any additional fields unless you like the Country. Here's a similar recipe from a couple months ago: MktoForms2 :: Conditionally Show Submit. You can see that if you select Your Status = 'Client' the submit button is hidden. On a technical level, what's happening is Visibililty Rules (manageable within the Form Editor) determine whether to show a Rich Text field:
Because the Submit button is inside the Rich Text block, the Visibility Rules apply to the button, too.
Anyway, lots of ways to accomplish the general goal. Josh's point about IP filtering is a good one: if the idea is to auto-detect the Country then this is the only way to accomplish this. I'm reluctant to encourage it in all cases (as is Josh) because the bare fact is that someone can be hitting your site from a misidentified IP address (proxy, VPN) and you might either mistakenly allow or mistakenly deny them. Unless there is a hard security reason to trust somebody's current geolocation as their business location, I'd let them identify their location.
This would be a nice native Marketo feature From form editor. Right now I have a problem where people can fill out a form, then change a value to something that will hide the form accept the submit button stays visible, then submit.
Dont ask me why. I have text all over the screen saying don't use the form for these products but they do it anyways