只能输入1到0到9的数字密码

时间:2019-10-15 08:00:08

标签: c# blazor

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

我尝试了

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

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

理想情况下,我也想通过密码输入来实现此功能

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

2 个答案:

答案 0 :(得分:2)

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

  

https://www.w3schools.com/tags/att_input_type_number.asp

或者您可以使用javascript控制键盘事件。

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

答案 1 :(得分:0)

如果使用的是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")