我正在尝试将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之间的值。
当前,文本框仅允许使用数字值,但可以输入超过两位数字的值。
最佳答案
您需要更改为@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 })