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)
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.ReCaptchaand@Html.ReCaptcha()(this one inside the form)[ValidateReCaptcha]just abovepublic class contactModel : PageModelOnPost()action, addExpected behavior
It would be nice to have an option to add an
asp-validation-fortag or anasp:RequiredFieldValidatortag 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):