TextBox中始终有5位数字

时间:2018-06-14 18:28:55

标签: jquery asp.net-mvc textbox

我在TextBox中需要ASP.NET MVC这样它只能取5个数字,而不是更多,而不是更少,如果输入的数字以0开头,则显示在TextBox以'0'开头。

示例,

  • 如果我输入12345,则TextBox应显示12345。即使我尝试输入超过上一个5的其他数字,也不应允许我这样做。同样,如果我输入少于5个数字,系统会提示我输入总共5个数字。

  • 如果我输入01234,则TextBox应显示01234而不是1234

由于我需要存储在数据库中,确切地说它是TextBox中的方式,我已将该字段声明为string

2 个答案:

答案 0 :(得分:2)

您可以使用minmax 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;
&#13;
&#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}

我不知道你的变量的名字,所以我做了一些,但我在我工作的程序中有非常相似的逻辑