Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 仅接受0到9之间的1值的数字密码输入_C#_Blazor - Fatal编程技术网

C# 仅接受0到9之间的1值的数字密码输入

C# 仅接受0到9之间的1值的数字密码输入,c#,blazor,C#,Blazor,正在尝试创建只接受0到9之间的一个字符的输入字段。我不想对此使用验证(因此用户无论尝试什么,都只能输入一个数字) 我试过了 <input type="text" size="1" maxLength="1" inputmode="numeric" /> 但是,这仍然允许使用alpha字符 理想情况下,我想让这个工作与密码输入太多 <input type="password" size="1" maxLength="1" inputmode="numeric" />

正在尝试创建只接受0到9之间的一个字符的输入字段。我不想对此使用验证(因此用户无论尝试什么,都只能输入一个数字)

我试过了

<input type="text" size="1" maxLength="1" inputmode="numeric" />

但是,这仍然允许使用alpha字符

理想情况下,我想让这个工作与密码输入太多

<input type="password" size="1" maxLength="1" inputmode="numeric" />

您可以直接使用数字类型的html:

也可以使用javascript控制键盘事件

<input type="text" onkeypress='return event.charCode >= 48 && event.charCode <= 57' />

您可以直接使用数字类型的html:

也可以使用javascript控制键盘事件

<input type="text" onkeypress='return event.charCode >= 48 && event.charCode <= 57' />

如果您使用的是mvc,则可以使用RegEx创建ModelView。像下面这样,

public class ValidationViewModel
{
    [StringLength(1, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 1)]
    [RegularExpression("^[0-9]$", ErrorMessage = "Only sigle number allowed between 0-9")]
    [DataType(DataType.Password)]
    [Display(Name = "Password")]
    public string Password { get; set; }
}
看来,

@using (Html.BeginForm())
{
    @Html.EditorFor(model => model.Password, "Password:")
    @Html.ValidationMessageFor(model => model.Password, "", new { @class = "error-message" })
}
确保引用了jqueryval

@Scripts.Render("~/bundles/jqueryval")

如果您使用的是mvc,则可以使用正则表达式创建ModelView。像下面这样,

public class ValidationViewModel
{
    [StringLength(1, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 1)]
    [RegularExpression("^[0-9]$", ErrorMessage = "Only sigle number allowed between 0-9")]
    [DataType(DataType.Password)]
    [Display(Name = "Password")]
    public string Password { get; set; }
}
看来,

@using (Html.BeginForm())
{
    @Html.EditorFor(model => model.Password, "Password:")
    @Html.ValidationMessageFor(model => model.Password, "", new { @class = "error-message" })
}
确保引用了jqueryval

@Scripts.Render("~/bundles/jqueryval")

“inputmode全局属性是一个枚举属性,提示用户在编辑元素或其内容时可能输入的数据类型。”(我强调)。所以,在这里,这个属性对你没有帮助。您可能会发现一个ui控件框架,它提供了一个能够实现这一点的控件。我可以问一下你为什么不喜欢使用验证吗?@Fildor我不讨厌验证,我只是从来没有遇到过一个允许你将alpha值放入PIN字段的网站(想想银行应用程序),我明白了。因此,您首先希望控件不接受[0..9]以外的任何内容作为输入。我想按下像“a”这样的按钮就应该被忽略掉吗?@Fildor是的,Ahmed下面的回答似乎很有效(我不知道我可以这样把JS放进去!)。尽管如您所指出的,它允许负数/小数“inputmode全局属性是一个枚举属性,它提示用户在编辑元素或其内容时可能输入的数据类型。”(我强调)。所以,在这里,这个属性对你没有帮助。您可能会发现一个ui控件框架,它提供了一个能够实现这一点的控件。我可以问一下你为什么不喜欢使用验证吗?@Fildor我不讨厌验证,我只是从来没有遇到过一个允许你将alpha值放入PIN字段的网站(想想银行应用程序),我明白了。因此,您首先希望控件不接受[0..9]以外的任何内容作为输入。我想按下像“a”这样的按钮就应该被忽略掉吗?@Fildor是的,Ahmed下面的回答似乎很有效(我不知道我可以这样把JS放进去!)。尽管正如您所指出的,它允许负数/小数SAFAIK“number”仍然可以接受负值和浮点值。比如“-5.68”,没错。OP希望字段只接受[0..9]。所以这不是“或”。他必须按照你的回答检查输入和过滤,但不能作为替代方法。@Fildor的
maxlength
值为1,它似乎按照我的要求工作,所以你的“PIN”只有一个位数?好的,您的选择:)@p3tchy您可以控制键盘(onkeypress)输入的每个字母的字符码,但AIK“number”仍然可以接受负值和浮点值。比如“-5.68”,没错。OP希望字段只接受[0..9]。所以这不是“或”。他必须按照你的回答检查输入和过滤,但不能作为替代方法。@Fildor的
maxlength
值为1,它似乎按照我的要求工作,所以你的“PIN”只有一个位数?好的,您的选择:)@p3tchy您可以控制键盘输入的每个字母的字符码(onkeypress)