If browser autocomplete two field in my register form (email + password) then validator always return true, but form has two others field (confirm password + terms). I can’t find solution for this, because if i complete manually form, validator return false for incorrect fields.
Validator code:
public sealed class SignUpValidator : AbstractValidator<SignUpDataModel>
{
public SignUpValidator(ITranslation translation)
{
RuleFor(x => x.Email).EmailAddress().WithMessage(translation["EMAIL_REQUIRED"]);
RuleFor(x => x.Password)
.NotEmpty().WithMessage(translation["PASSWORD_REQUIRED"]);
RuleFor(x => x.ConfirmPassword)
.NotEmpty()
.Must((m, password) => !string.IsNullOrEmpty(m.Password) && password.Equals(m.Password)).WithMessage(translation["PASSWORD_VARY"]);
RuleFor(x => x.AcceptTerms).Must(x => x).WithMessage(translation["ACCEPT_TERMS_REQUIRED"]);
}
}
Method for OnSubmit in EditForm:
public async Task AcceptForm(EditContext context)
{
SuccessSignUp = false;
ErrorMessages = new string[]{};
IsValid = context.Validate();
if(!IsValid)
return;
IsBusy = true;
var result = await _apiResponseHandler.HandleAsync(
_identityService.SignUpAsync(new(DataModel.Email, DataModel.Password)), false);
IsBusy = false;
SuccessSignUp = result.Succeeded;
if (!result.Succeeded)
{
ErrorMessages = result.Errors.Select(x => x.Message);
IsValid = false;
return;
}
}
Others validators are ok, but only this one is break
I tried StateHasChanged in OnAfterRender, but dont work.
New contributor
Arkadiusz S is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.