Skip to content

There is no client side validation #46

@blovia22

Description

@blovia22

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:

  1. Install the product.
  2. In program.cs, add builder.Services.AddReCaptcha(builder.Configuration.GetSection("ReCaptcha"));
  3. 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
}
  1. In .cshtml, add @using AspNetCore.ReCaptcha and @Html.ReCaptcha() (this one inside the form)
  2. In .cshtml.cs, add [ValidateReCaptcha] just above public class contactModel : PageModel
  3. 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)

Metadata

Metadata

Assignees

No one assigned

    Labels

    Under investigationIssue described is currently under investigation

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions