Blazor/BlazorApp/Components/Pages/ValidationPage/Validation.razor.cs

50 lines
1.7 KiB
C#

using System.ComponentModel.DataAnnotations;
using BlazorApp.Components.Pages.ValidationPage;
using Microsoft.AspNetCore.Components;
using Microsoft.AspNetCore.Components.Forms;
namespace BlazorApp.Components.Pages.ValidationPage;
public partial class Validation : ComponentBase
{
private LoginModel login = new LoginModel();
private EditContext editContext;
private bool isIdValid = false;
private bool isPwValid = false;
private bool isEmailValid = false;
protected override void OnInitialized()
{
Console.WriteLine("Oninitialized");
editContext = new EditContext(login);
Console.WriteLine(isPwValid);
// editContext.OnFieldChanged += HandleFieldChanged;
}
private void HandlerInputChange()
{
Console.WriteLine("HandlerInputChange");
// 유효성 검사가 발생했다? = true
tryCheckValidate();
StateHasChanged();
}
private void tryCheckValidate()
{
editContext.Validate();
Console.WriteLine($"{isIdValid}, {isPwValid}, {isEmailValid}");
Console.WriteLine(editContext.GetValidationMessages(() => login.Id).Any());
Console.WriteLine(editContext.GetValidationMessages(() => login.Pw).Any());
Console.WriteLine(editContext.GetValidationMessages(() => login.Email).Any());
isIdValid = !editContext.GetValidationMessages(() => login.Id).Any();
isPwValid = !editContext.GetValidationMessages(() => login.Pw).Any();
isEmailValid = !editContext.GetValidationMessages(() => login.Email).Any();
}
private void HandleValidSubmit()
{
// 유효성 검사에 성공했을 때의 처리
Console.WriteLine("Form submitted successfully");
}
}