Create a Spam-free contact form without a captcha / by Cory

Captchas are annoying and only exist to combat spam. I've been using a technique for the past year that doesn't require a captcha and I haven't received a single piece of spam email. Here's how:

  1. Create a form and set the form action to # (we dont want spam bots to know where the form is being submitted to).
  2. dont use a submit button, instead use an <a href="#" class="submit">Submit</a>
  3. Use jquery to trigger the post when the '.submit' link is clicked.

Here's the jQuery code I use to do the form post:


// get the text that the user put into the form
var name = $('input#contact-name').val();
var email = $('input#contact-email').val();
var message = $('textarea#contact-message').val();

// prepare it for an ajax post
var dataString = 'name='+ name + '&email=' + email + '&message=' + message;

// post the form to the page that hosts your email script
type: "POST",
url: "/a/contact/",
data: dataString,
success: function() {
$('.contactform form').fadeOut();
$('.contactform form').html("Thanks for reaching out!") .fadeIn(function() {
}); }
}); return false;