Comment utiliser un contrôle d’entrée pour autoriser uniquement les nombres entiers sans décimale dans Blazor sans utiliser js ?

la programmation


Je construis un formulaire de manière dynamique et j’ai besoin d’un contrôle de saisie pour accepter uniquement les nombres entiers, ce qui ne permet pas de saisir des valeurs décimales, y compris des points. mais aucune des méthodes ne me fournit un résultat précis.

Ce que j’ai essayé :

     <input type="text" class="form-control" id="@acs.CTL_NAME" @ref="@(_inputRefs[acs.SRNO - 1])" inputmode="numeric"
            @bind="bindData[acs.SRNO-1]" tabindex="@acs.TAB_INDEX" @oninput="@((ChangeEventArgs e) => HandleNumber(e,acs.SRNO-1))">

@code{
public string[] bindData; //array is initialized with null in other method which is working fine 

private void HandleNumber(ChangeEventArgs e,int index)
{
    string inputValue = e.Value?.ToString();

    inputValue = inputValue?.Replace(".", "");

    bindData[index] = Regex.Replace(inputValue, @"[^\d]", "");
    StateHasChanged();
}
}

Solution 1

Utiliser type="number"vous pouvez alors masquer les bascules :

CSS
input[type=number]::-webkit-outer-spin-button,
input[type=number]::-webkit-inner-spin-button {
    -webkit-appearance: none; /* hide spinner buttons*/
}

input[type=number] {
    -moz-appearance: textfield; /* Firefox - hide spinner buttons*/
}

コメント

タイトルとURLをコピーしました