version 1.72, 2024/03/30 18:13:27 |
version 1.73, 2024/03/31 14:15:20 |
|
|
const form = document.querySelector("#cform"); |
const form = document.querySelector("#cform"); |
|
|
function validateEmail(email) { |
function validateEmail(email) { |
const regex = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/; |
var em = string.toLowerCase(); |
return regex.test(email); |
// 1. max len = 96 |
|
const regex = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+(\.[a-zA-Z]{2,})+$/; |
|
return regex.test(em); |
}; |
}; |
|
|
function validateSubject(subject) { |
function validateSubject(subject) { |
|
// 1. remove special chars |
|
// 2. min len = 4 |
|
// 3. max len = 96 |
return (subject.length>5); |
return (subject.length>5); |
} |
} |
|
|
function validateMsg(msg) { |
function validateMsg(msg) { |
|
// 1. remove special chars |
|
// 2. min len = 4 |
|
// 3. max len = 2048 |
return (msg.length>5); |
return (msg.length>5); |
} |
} |
|
|
Line 39 async function sendData() { |
|
Line 47 async function sendData() { |
|
'response-field': false, |
'response-field': false, |
retry: 'never', |
retry: 'never', |
'error-callback': function(e) { |
'error-callback': function(e) { |
turnstile.remove(); |
// turnstile.remove(); |
ii.textContent="Cloudflare Turnstile verification error. Try again later." |
ii.textContent="Cloudflare Turnstile verification error. Try again later." |
}, |
}, |
callback: function(token) { |
callback: function(token) { |
const dataToSend = JSON.stringify({"add": em, "sub": su, "msg": ms, "tok": token}); |
const dataToSend = JSON.stringify({"add": em, "sub": su, "msg": ms, "tok": token}); |
// console.log(`JSON: ${dataToSend}`); |
|
ii.textContent="Sending..."; |
ii.textContent="Sending..."; |
|
|
|
|
Line 57 fetch("/feedbk/", { |
|
Line 64 fetch("/feedbk/", { |
|
body: dataToSend |
body: dataToSend |
}) |
}) |
.then(response => response.json()) |
.then(response => response.json()) |
// .then(json => console.log(json)) |
|
.then(json => ii.textContent=json['msg']) |
.then(json => ii.textContent=json['msg']) |
|
|
|
|
// ii.textContent=json['msg']; |
|
|
|
|
|
|
|
}, |
}, |
}); |
}); |
|
turnstile.remove(); |
}); |
}); |
} |
} |
}; |
}; |