Попытка ограничить ограничение размера для типа данных int в ASP.NET MVC - PullRequest
0 голосов
/ 29 апреля 2019

Я пытаюсь исправить размер диапазона текстового поля int с двумя цифрами. Но я не в состоянии так. Любая идея будет оценена.

CoilEntry.cs - это класс модели, где OUT_P_NO - это свойство int, которое я хотел бы ограничить максимум двумя цифрами.

CoilEntry.cshtml показывает его HTML-часть.

Coilentry.cs (класс модели)

public class CoilEntry
{
    [Range(0,99, ErrorMessage="Please use values between 0 to 30")]
    public int OUT_P_NO { get; set; }
}

CoilEntry.cshtml

@using (Html.BeginForm("CoilEntry", "Home", FormMethod.Post))
{
        <table border="0" cellpadding="0" cellspacing="0">
            <tr>
                <th colspan="3">
                    Coil Entry Detail
                </th>
            </tr>
            <tr>
                <td>
                    OUT PART NO
                </td>
                <td>
                   @Html.TextBoxFor(m=>m.OUT_P_NO,new {@type="number",@maxlength=2,@size=2})
                  </td>
</table>
} 

Ожидаемым результатом будет то, что текстовое поле будет разрешать значения только от 0 до 99.

В настоящее время в текстовом поле допускаются только числовые значения, но можно ввести значение, превышающее две цифры.

1 Ответ

2 голосов
/ 29 апреля 2019

Вам нужно изменить на @type = "text" и добавить событие для keypress

Добавьте это в раздел скриптов страницы в файле cshtml. #OUT_P_NO - это идентификатор, генерируемый при использовании @Html.TextBoxFor(m => m.OUT_P_NO

<script src="~/Scripts/jquery-1.10.2.min.js"></script>
<script>
    $('#OUT_P_NO').keypress(function(evt) {
            var charCode = (evt.which) ? evt.which : event.keyCode;
            if (charCode > 31 && (charCode < 48 || charCode > 57))
                return false;
            return true;
    });
</script>

Изменить тип = "число" на "текст"

@Html.TextBoxFor(m => m.OUT_P_NO, new { @type = "text", @maxlength = 2, @size = 2 })
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...