I would like to prevent to type anything else only integers for .
I am using Maui Blazor with MudBlazor. For regular Blazor on computer this works, but on phone does not.
<MudNumericField
@bind-Value="value"
Label="Standard"
Variant="Variant.Text"
Min="0"
Max="10"
Pattern="[0-9]" />
@code {
int value = 0;
}
In the end i solved with these:
Razor.cs
private int? _integerValue;
[Inject]
public IJSRuntime JSRuntime { get; set; } = default!;
protected override async Task OnAfterRenderAsync(bool firstRender)
{
if (firstRender)
{
await JSRuntime.InvokeVoidAsync("mask");
}
}
CustomMasks.js
window.mask = () => {
const integerMask = {
mask: Number,
min: 0,
};
var elements = document.querySelectorAll(".positive-integer input");
elements.forEach(element => {
IMask(element, integerMask);
});
};
Razor:
<MudNumericField @bind-Value="_integerValue" Class="positive-integer"/>