Blazor-如何防止文本框(InputText)中出现非数字字符?

Blazor-如何防止文本框(InputText)中出现非数字字符?,blazor,blazor-server-side,blazor-webassembly,blazor-client-side,asp.net-blazor,Blazor,Blazor Server Side,Blazor Webassembly,Blazor Client Side,Asp.net Blazor,我在blazor中有一个InputText,我想阻止非数字字符,基本的razor和c代码是什么?下面是我需要它的工作方式,用户输入一个字符,然后它一起拒绝输入,并显示一条验证消息,表明只允许数字。到目前为止,我已经尝试使用regex使用datanotations range属性,但这并不拒绝非数字字符。它实际上是一种html/javascript的东西。添加 onkeypress=return event.charCode=8&&event.charCode==0 | | event.charC

我在blazor中有一个InputText,我想阻止非数字字符,基本的razor和c代码是什么?下面是我需要它的工作方式,用户输入一个字符,然后它一起拒绝输入,并显示一条验证消息,表明只允许数字。到目前为止,我已经尝试使用regex使用datanotations range属性,但这并不拒绝非数字字符。

它实际上是一种html/javascript的东西。添加

onkeypress=return event.charCode=8&&event.charCode==0 | | event.charCode>=48&&event.charCode wait isInputNumeric

在该元素中,然后创建函数

私有异步任务isInputNumeric{//调用javascript检查输入元素中的内容最后一个字符是什么,并相应地执行->显示消息并删除非数字字符,或者在输入为数字时继续执行}


您必须使用javascript,因为blazor还没有访问html元素的c方式。

这实际上是一个html/javascript的东西。添加

onkeypress=return event.charCode=8&&event.charCode==0 | | event.charCode>=48&&event.charCode wait isInputNumeric

在该元素中,然后创建函数

私有异步任务isInputNumeric{//调用javascript检查输入元素中的内容最后一个字符是什么,并相应地执行->显示消息并删除非数字字符,或者在输入为数字时继续执行}


您必须使用javascript,因为blazor还没有访问html元素的c方式。

dinozaver很好地回答了您的问题,但我想补充一些我认为非常重要的建议: 您没有义务使用Blazor的自定义控件,它主要处理验证

如果您需要数字输入,我建议只使用一个:

<input type="number" @bind="MyImportantNumber" />

@code 
{
     int MyImportantNumber { get; set; }
}

你可以得到更多信息。HTML数字输入允许您设置最小/最大值、微调器控件的步长等。此外,在移动设备上使用html数字控件将弹出一个数字键盘,用户可能会觉得很方便。

dinozaver很好地回答了您的问题,但我想补充一些我认为非常重要的建议: 您没有义务使用Blazor的自定义控件,它主要处理验证

如果您需要数字输入,我建议只使用一个:

<input type="number" @bind="MyImportantNumber" />

@code 
{
     int MyImportantNumber { get; set; }
}

你可以得到更多信息。HTML数字输入允许您设置最小/最大值、微调器控件的步长等。此外,在移动设备上使用html数字控件将弹出一个数字键盘,用户可能会觉得很方便。

您为我节省了小时数namaste您为我节省了小时数namaste