MVC TextBoxFor的输入字段中只有4位数字
Posted
技术标签:
【中文标题】MVC TextBoxFor的输入字段中只有4位数字【英文标题】:Only 4 digit numbers in input field in MVC TextBoxFor 【发布时间】:2021-01-19 05:59:54 【问题描述】:我有一个 MVC5 项目,我有一个输入字段,我只想输入一个 8 位数字。我尝试这样实现它:
@html.TextBoxFor(model => model.oldPin, new maxlength = "8", @class = "form-control disablecopypaste", onkeydown = "return isNumber(event);" )
function isNumber(evt)
evt = (evt) ? evt : window.event;
var charCode = (evt.which) ? evt.which : evt.keyCode;
if (charCode === 16)
return false;
if (charCode > 31 && (charCode < 48 || charCode > 57))
return false;
return true;
我的问题是,虽然这可以防止数字,但它允许空格和特殊字符。我该如何防止这种情况?它适用于 keypress 事件,但它已贬值,我担心浏览器兼容性。有没有办法用keydown事件做到这一点?我看到的所有答案都与keypress事件有关。
【问题讨论】:
【参考方案1】: function allowNumberOnly (e)
var ascii = (e.which) ? e.which : e.keyCode
if (ascii> 31 && (ascii< 48 || ascii> 57))
return false;
else
var vall = $('#oldPin').val()
if (vall.length > 3)
return false;
else
return true;
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input class="form-control " id="oldPin" name="oldPin" onkeypress="return allowNumberOnly(event)" type="text" value="">
【讨论】:
感谢您的快速回复。这使用了已折旧的 onkeypress。我正在寻找一种不使用 onkeypress 的不同方式以上是关于MVC TextBoxFor的输入字段中只有4位数字的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 MVC3 ASP.NET 4.5 和 EF6 基于实体属性注释对 TextBoxFor 进行舍入
MVC 和 Razor 中 Html.TextboxFor 和 Html.EditorFor 的区别
c# razor mvc textboxfor in foreach 循环
使用 jQuery datepicker 从 ASP MVC @Html.TextBoxFor 控件中删除时间
ASP.NET MVC3:使用 JQuery DatePicker 和 editorFor/TextBoxFor 以正确的格式显示日期