You'd need a captcha or some other type of human-validation. I would suggest that you time the page-load to form-submission. Since bots will do it automatically and therefore in a matter of milliseconds, it would be easy to do it with Javascript's Date()
object.
<joke>
Alternatively, you could ask the bot/human what .1+.2
is, and if the result comes out to 0.30000000000000004
, you've got a bot.
</joke>
If you're looking more specifically for a CAPTCHA based one, you could use reCAPTCHA.
However, another interesting thing that I have seen work well is to have a form field that is either hidden or has a message to the user saying not to fill it in. If the user fills it in, you can be confident that your script will reject both bots and humans who don't know how to read