当用户开始输入时,我正在尝试将电话号码格式化为 (###)-###-#### 格式。我不想在达到长度 14 后接受这些字母。但是,我无法做出这个限制。无法将值再次设置回输入控件。我尝试了两个 'value' '@bind-value' 属性。
如果有人以简单的方式弄清楚这个限制,我将不胜感激。
<input type="text" @bind-value="@PhoneNumber" @oninput="KeyInputHandler" />
@code {
string phoneNo = string.Empty;
public string PhoneNumber { get; set; } = string.Empty;
private void KeyInputHandler(ChangeEventArgs e)
{
var key = (string)e.Value;
if (PhoneNumber.Length < 14)
{
PhoneNumber = PhoneNumber.Length switch
{
0 => $"({key}",
3 => $"{key})-",
8 => $"{key}-",
_ => $"{key}"
};
}
}