You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Describe the bug
If I fill out all the fields of my form, except the captcha, there is no client side validation. The browser goes to the server, where I can use ModelState.IsValid to find the error. But I would like to prevent the browser going to the server.
To Reproduce
Steps to reproduce the behavior:
Install the product.
In program.cs, add builder.Services.AddReCaptcha(builder.Configuration.GetSection("ReCaptcha"));
In appsetting.json, add
"ReCaptcha": {
"SiteKey": "my site key",
"SecretKey": "my secret key",
"Version": "v2", // The ReCaptcha version to use, can be v2, v2invisible or v3
"UseRecaptchaNet": false, // Value whether to use google recaptcha or recaptcha.net
"ScoreThreshold": 0.5 // Only applicable for recaptcha v3, specifies the score threshold when it is considered successful
}
In .cshtml, add @using AspNetCore.ReCaptcha and @Html.ReCaptcha() (this one inside the form)
In .cshtml.cs, add [ValidateReCaptcha] just above public class contactModel : PageModel
In .cshtml.cs, in the OnPost() action, add
if (!ModelState.IsValid)
{
TempData["mensajeError"] = "An error ocurred, did you solve the captcha?";
return Page();
}
Expected behavior
It would be nice to have an option to add an asp-validation-for tag or an asp:RequiredFieldValidator tag in order to add client-side validation for the captcha.
Or is there a way with javascript to check that the captcha was solved and if it wasn't, show a red message below the captcha without having the browser go back to the server?
Desktop (please complete the following information):
OS: Windows 11
Browser: Edge
Version: 102.0.1245.44 (Official build) (64-bit)
The text was updated successfully, but these errors were encountered:
Describe the bug
If I fill out all the fields of my form, except the captcha, there is no client side validation. The browser goes to the server, where I can use ModelState.IsValid to find the error. But I would like to prevent the browser going to the server.
To Reproduce
Steps to reproduce the behavior:
builder.Services.AddReCaptcha(builder.Configuration.GetSection("ReCaptcha"));
@using AspNetCore.ReCaptcha
and@Html.ReCaptcha()
(this one inside the form)[ValidateReCaptcha]
just abovepublic class contactModel : PageModel
OnPost()
action, addExpected behavior
It would be nice to have an option to add an
asp-validation-for
tag or anasp:RequiredFieldValidator
tag in order to add client-side validation for the captcha.Or is there a way with javascript to check that the captcha was solved and if it wasn't, show a red message below the captcha without having the browser go back to the server?
Desktop (please complete the following information):
The text was updated successfully, but these errors were encountered: