我在TextBox
中需要ASP.NET MVC
这样它只能取5个数字,而不是更多,而不是更少,如果输入的数字以0
开头,则显示在TextBox
以'0'开头。
示例,
如果我输入12345
,则TextBox
应显示12345
。即使我尝试输入超过上一个5
的其他数字,也不应允许我这样做。同样,如果我输入少于5
个数字,系统会提示我输入总共5
个数字。
如果我输入01234
,则TextBox
应显示01234
而不是1234
。
由于我需要存储在数据库中,确切地说它是TextBox
中的方式,我已将该字段声明为string
。
答案 0 :(得分:2)
您可以使用min
和max
html属性,但不会在所有浏览器中强制执行这些属性,因此最好依赖Javascript / jQuery。
$('.test-input').unbind('keyup change input paste').bind('keyup change input paste',function(e){
var $this = $(this);
var val = $this.val();
var valLength = val.length;
var maxCount = $this.attr('max');
if(valLength>maxCount){
$this.val($this.val().substring(0,maxCount));
}
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input class="test-input" type="number" max="5" />
&#13;
此外,在用户输入值(keyup / change事件)时检查最小字符验证不是一个好的经验,所以最好在表单提交时检查。
答案 1 :(得分:0)
我假设您在剃刀语法中使用了@ Html.Text框。如果是这样,那么这应该适合你:
@Html.TextBox("FiveDigits", "", new { placeholder = "Enter 5 digits"})
会出现在您的视野中,这会出现在您的控制器中:
if (TheForm["FiveDigits"] > 99999 || TheForm["FiveDigits"] < 10000 || String.IsNullorEmpty(tablename.TextHasMoreThanFiveDigits))
{
ModelState.AddModelError("TextHasMoreThanFiveDigits", "You must enter a 5 digit number");
return View(ViewWithTextBox);
} else { do database stuff}
我不知道你的变量的名字,所以我做了一些,但我在我工作的程序中有非常相似的逻辑