![]() ![]() | ![]() |
version 1.53, 2024/03/29 20:53:10 | version 1.79, 2024/03/31 14:55:18 | ||
---|---|---|---|
|
|
||
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-]+)*$/; | const regex = /^[a-z0-9._%+-]+@[a-z0-9.-]+(\.[a-z]{2,})+$/; | ||
return regex.test(email); | return regex.test(email); | ||
}; | }; | ||
function validateSubject(subject) { | function validateSubject(subject) { | ||
return (subject.length>5); | return (subject.length>3); | ||
} | } | ||
function validateMsg(msg) { | function validateMsg(msg) { | ||
return (msg.length>5); | return (msg.length>3); | ||
} | } | ||
async function sendData() { | async function sendData() { | ||
var er = 0; | var er = 0; | ||
em = document.getElementById("cfem").value, | em = document.getElementById("cfem").value), | ||
su = document.getElementById("cfsu").value, | su = document.getElementById("cfsu").value), | ||
ms = document.getElementById("cfme").value, | ms = document.getElementById("cfme").value), | ||
ii = document.getElementById("cfinfo"); | ii = document.getElementById("cfinfo"); | ||
return; | |||
er=validateEmail(em)?er:++er; | er=validateEmail(em)?er:++er; | ||
er=validateSubject(su)?er:++er; | er=validateSubject(su)?er:++er; | ||
er=validateMsg(ms)?er:++er; | er=validateMsg(ms)?er:++er; | ||
|
|
||
ii.textContent="One or more fields have an error. Please check and try again."; | ii.textContent="One or more fields have an error. Please check and try again."; | ||
} else { | } else { | ||
var fc = document.querySelectorAll(".wpcf7-form-control"); | var fc = document.querySelectorAll(".wpcf7-form-control"); | ||
ii.textContent="All good."; | ii.textContent="Please wait..."; | ||
fc.forEach((f) => { | fc.forEach((f) => { | ||
f.disabled=true; | f.disabled=true; | ||
l=f; | l=f; | ||
|
|
||
'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." | |||
}, | }, | ||
callback: function(token) { | callback: function(token) { | ||
ii.textContent="Sent"; | const dataToSend = JSON.stringify({"add": em, "sub": su, "msg": ms, "tok": token}); | ||
console.log(`Challenge Success ${token}`); | ii.textContent="Sending..."; | ||
/* --------------------- */ | |||
//const ob = {mail: em, sub: su, msg: ms, id: token }; | |||
//var data="", | |||
// status="", | |||
// feed=JSON.stringify(ob); | |||
//$.post("/feedbk/", feed, function(data, status){ | |||
// console.log("Data: " + data + "\nStatus: " + status); | |||
// console.log(data); | |||
// console.log("JSON: " + JSON.parse(data) ); | |||
// | |||
//}); | |||
/* --------------------- */ | |||
//ovar re=""; | |||
const dataToSend = JSON.stringify({"email": "hey@mail.com", "password": "101010"}); | |||
let dataReceived = ""; | |||
fetch("/feedbk/", { | fetch("/feedbk/", { | ||
credentials: "same-origin", | credentials: "same-origin", | ||
mode: "same-origin", | mode: "same-origin", | ||
method: "post", | method: "post", | ||
headers: { "Content-Type": "application/json" }, | headers: { "Content-Type": "application/json" }, | ||
body: dataToSend | body: dataToSend | ||
}) | }) | ||
.then(resp => { | .then(response => response.json()) | ||
if (resp.status === 200) { | .then(json => ii.textContent=json['msg']) | ||
return resp.json() | |||
} else { | |||
console.log("Status: " + resp.status) | |||
return Promise.reject("server") | |||
} | |||
}) | |||
.then(dataJson => { | |||
dataReceived = JSON.parse(dataJson) | |||
}) | |||
.catch(err => { | |||
if (err === "server") return | |||
console.log(err) | |||
}) | |||
console.log(`Received: ${dataReceived}`) | |||
}, | }, | ||
}); | }); | ||
}); | }); | ||
turnstile.remove(); | |||
turnstile.close(); | |||
} | } | ||
}; | }; | ||