$.validator.addMethod('postcode', function (value) { return /^(GIR|[A-Za-z]\d[A-Za-z\d]??|[A-Za-z]{2}\d[A-Za-z\d]??)[ ]??(\d[A-Za-z]{2})$/.test(value); }); $.validator.addMethod('phoneno', function (value) { return /^(((\+44\s?\d{4}|\(?0\d{4}\)?)\s?\d{3}\s?\d{3})|((\+44\s?\d{3}|\(?0\d{3}\)?)\s?\d{3}\s?\d{4})|((\+44\s?\d{2}|\(?0\d{2}\)?)\s?\d{4}\s?\d{4}))(\s?\#(\d{4}|\d{3}))?$/.test(value); }); $.validator.addMethod("notEqualTo", function(value, element, param) { return this.optional(element) || value != param; }); $(document).ready(function(){ jQuery.validator.messages.required = ""; jQuery.validator.messages.email = ""; jQuery.validator.messages.phoneno = ""; jQuery.validator.messages.postcode = ""; jQuery.validator.messages.notEqualTo = ""; $("#signup_form").validate({ errorElement: "div", errorClass: "invalid", rules:{ forename:{ required:true }, surname:{ required:true }, homephone:{ required:true, phoneno:true }, field:{ required:true, email: true }, field_f:{ email: true }, location:{ notEqualTo:'default' }, friendsforename:{ required:true }, friendssurname:{ required:true }, friendshomephone:{ required:true, phoneno:true }, friendsfield:{ required:true, email: true }, friendslocation:{ notEqualTo:'default' }, feedback:{ required: true }, fields_email:{ required: true, email: true }, fields_fname:{ required: true }, fields_lname:{ required: true } } }); });