Ввод числового пароля, который принимает только 1 значение от 0 до 9 - PullRequest
0 голосов
/ 15 октября 2019

Попытка создать поле ввода, которое будет принимать только один символ от 0 до 9. Я не хочу использовать проверку для этого (поэтому пользователь может вводить только одно число независимо от того, что он пытается)

Я пытался

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

Однако это по-прежнему позволяет использовать альфа-символы.

В идеале, я бы хотел, чтобы это работало и при вводе пароля

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

Ответы [ 2 ]

2 голосов
/ 15 октября 2019

Вы можете напрямую использовать числовой тип HTML:

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

Или вы можете управлять событиями клавиатуры с помощью JavaScript.

<input type="text" onkeypress='return event.charCode >= 48 && event.charCode <= 57' />
0 голосов
/ 15 октября 2019

Если вы используете mvc, вы можете создать ModelView с помощью RegEx. например,

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")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...