我正在尝试将int数据类型文本框的大小范围固定为仅两位数。
但是我不能。任何想法将不胜感激。

CoilEntry.cs是模型类,其中OUT_P_NOint属性,我想限制为最多两位数。

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之间的值。

当前,文本框仅允许使用数字值,但可以输入超过两位数字的值。

最佳答案

您需要更改为@type =“ text”并为keypress添加事件

将此添加到cshtml文件中页面的脚本部分。使用#OUT_P_NO@Html.TextBoxFor(m => m.OUT_P_NO是id生成

<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>


将type =“ number”更改为“ text”

@Html.TextBoxFor(m => m.OUT_P_NO, new { @type = "text", @maxlength = 2, @size = 2 })

10-06 14:55