Bagaimana cara menggunakan kontrol input untuk mengizinkan hanya bilangan bulat tanpa desimal di blazor tanpa menggunakan js?

pemrograman


Saya sedang membangun formulir secara dinamis dan saya memerlukan kontrol input untuk hanya menerima bilangan bulat yang tidak memungkinkan untuk memasukkan nilai desimal termasuk titik. tetapi tidak ada metode yang memberi saya hasil yang akurat.

Apa yang saya coba:

     <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();
}
}

Solusi 1

Menggunakan type="number"lalu Anda dapat menyembunyikan rockernya:

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をコピーしました