I'm trying to use Jquery validator to validate an captcha based on a GET request.
I've tried to use asynchronous functions to fetch the json response from a GET request to util/Captcha.php?action=validate&encryptedCode=W1tlM1hyNjdVb1JvYw==&inputCode=111111
async function getValidCode()
{
return await validateCaptcha().then(function (data) {
console.log(data);
return data;
});
}
async function validateCaptcha() {
var encryptedCode = btoa($('#hiddenCaptcha').val());
var inputCode = $("#captchaInput").val();
return $.get(`../../../util/Captcha.php?action=validate&encryptedCode=${encryptedCode}&inputCode=${inputCode}` function (response) {
var response = JSON.parse(response);
var isValid = response["validCode"]
return isValid;
});
}
I am trying to validate #captchaInput based on it's value, on exit from the input, call getValidCode(), parse the json to return a boolean true or false.
This is the jquery validator.
jQuery.validator.addMethod("isCaptchaValid", async function(value, element, params) {
var valid = await getValidCode();
console.log("isvalidtest", JSON.parse(valid)["validCode"]);
//isvalidtest true
return JSON.parse(valid)["validCode"];
}, jQuery.validator.format("Incorrect Captcha"));
Thank you for your help! :)