International Telephone Input js library wrapper for Blazor serverside and clientside! Includes a MudBlazor component as well.
$ dotnet add package IntlTelInput.MudBlazorInternational Telephone Input js library wrapper for Blazor serverside and clientside. Most of the features are supported, but there are some that I have not implemented! If you would like to add them feel free to do so.
<script src="./_content/IntlTelInputBlazor/js/intlTelInput.js"></script>
<link rel="stylesheet" href="./_content/IntlTelInputBlazor/css/intlTelInput.css">
builder.Services.RegisterIntlTelInput();
A custom validation attribute is included, see the example below. It is important to note that the included validation attribute works by calling the International Telephone Input library. More specifically isValidNumber method.

<EditForm EditContext="_editContext" OnValidSubmit="OnValidSubmit">
<DataAnnotationsValidator/>
<ValidationSummary/>
<label>Nr. 1:</label>
<IntPhoneNumberInput @bind-Value="_model.IntTelNumber"/>
<label>Nr. 2:</label>
<IntPhoneNumberInput @bind-Value="_model.IntTelNumber2"/>
<button class="btn-primary">Submit</button>
</EditForm>
@code
{
NumberModel _model = new NumberModel();
EditContext _editContext;
protected override void OnInitialized()
{
_editContext = new EditContext(_model);
}
private void OnValidSubmit()
{
var tel1 = _model.IntTelNumber.Number;
var tel2 = _model.IntTelNumber2.Number;
Console.WriteLine($"Number 1: {tel1}; Number 2: {tel2}");
}
}
public class NumberModel
{
[IntlTelephone(ErrorMessage = "Tel. 1 incorrect format")]
public IntlTel IntTelNumber { get; set; }
[IntlTelephone(ErrorMessage = "Tel. 2 incorrect format")]
public IntlTel IntTelNumber2 { get; set; }
}