|
4 | 4 | return re.test(email);
|
5 | 5 | }
|
6 | 6 |
|
7 |
| - function validateHuman(honeypot) { |
8 |
| - if (honeypot) { //if hidden form filled up |
9 |
| - console.log("Robot Detected!"); |
10 |
| - return true; |
11 |
| - } else { |
12 |
| - console.log("Welcome Human!"); |
13 |
| - } |
14 |
| - } |
15 |
| - |
16 | 7 | // get all data in form and return object
|
17 | 8 | function getFormData(form) {
|
18 | 9 | var elements = form.elements;
|
| 10 | + var honeypot; |
19 | 11 |
|
20 | 12 | var fields = Object.keys(elements).filter(function(k) {
|
21 |
| - return (elements[k].name !== "honeypot"); |
| 13 | + if (elements[k].name === "honeypot") { |
| 14 | + honeypot = elements[k].value; |
| 15 | + return false; |
| 16 | + } |
| 17 | + return true; |
22 | 18 | }).map(function(k) {
|
23 | 19 | if(elements[k].name !== undefined) {
|
24 | 20 | return elements[k].name;
|
|
56 | 52 | formData.formGoogleSendEmail = form.dataset.email || ""; // no email by default
|
57 | 53 |
|
58 | 54 | console.log(formData);
|
59 |
| - return formData; |
| 55 | + return {data: formData, honeypot}; |
60 | 56 | }
|
61 | 57 |
|
62 | 58 | function handleFormSubmit(event) { // handles form submit without any jquery
|
63 | 59 | event.preventDefault(); // we are submitting via xhr below
|
64 | 60 | var form = event.target;
|
65 |
| - var data = getFormData(form); // get the values submitted in the form |
| 61 | + var formData = getFormData(form); |
| 62 | + var data = formData.data; |
66 | 63 |
|
67 |
| - /* OPTION: Remove this comment to enable SPAM prevention, see README.md |
68 |
| - if (validateHuman(data.honeypot)) { //if form is filled, form will not be submitted |
| 64 | + // If a honeypot field is filled, assume it was done so by a spam bot. |
| 65 | + if (formData.honeypot) { |
69 | 66 | return false;
|
70 | 67 | }
|
71 |
| - */ |
72 | 68 |
|
73 | 69 | if( data.email && !validEmail(data.email) ) { // if email is not valid show error
|
74 | 70 | var invalidEmail = form.querySelector(".email-invalid");
|
|
0 commit comments