如何使用输入控件在 blazor 中仅允许不带小数的整数而不使用 js?


我正在动态构建一个表单,我需要一个输入控件来仅接受整数,而不允许输入包括点在内的十进制值。 但这些方法都没有为我提供准确的结果。

我尝试过的:

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

解决方案1

使用 type="number",然后你可以隐藏摇杆:

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