Jquery 文本框中始终有5位数字

Jquery 文本框中始终有5位数字,jquery,asp.net-mvc,textbox,Jquery,Asp.net Mvc,Textbox,在ASP.NET MVC中,我需要一个TextBox,这样它只能包含5位数字,不能多,也不能少。如果输入的数字以0开头,则TextBox中显示的值以“0”开头 例如 如果输入12345,则文本框应显示12345。即使我尝试输入最后一个5之外的另一个数字,它也不允许我这样做。同样,如果我输入的数字少于5位,则应提示我输入总共5位 如果我输入01234,文本框应显示01234,而不是1234 由于我需要在数据库中准确地存储它在文本框中的方式,因此我将该字段声明为字符串 我假设您使用的是razor

ASP.NET MVC
中,我需要一个
TextBox
,这样它只能包含5位数字,不能多,也不能少。如果输入的数字以
0
开头,则
TextBox
中显示的值以“0”开头

例如

  • 如果输入
    12345
    ,则
    文本框应显示
    12345
    。即使我尝试输入最后一个
    5
    之外的另一个数字,它也不允许我这样做。同样,如果我输入的数字少于
    5
    位,则应提示我输入总共
    5

  • 如果我输入
    01234
    文本框应显示
    01234
    ,而不是
    1234


由于我需要在数据库中准确地存储它在
文本框中的方式
,因此我将该字段声明为
字符串

我假设您使用的是razor语法中的@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}
if(格式[“五位数字”]>99999 | |格式[“五位数字”]<10000 | | |字符串.IsNullorEmpty(tablename.textHasThanFiveDigits))
{
AddModelError(“textHasThorFiveDigits”,“您必须输入一个5位数字”);
返回视图(ViewWithTextBox);
}else{do database stuff}

我不知道你的变量名,所以我编了一些,但我在一个程序中有非常相似的逻辑,我假设你使用的是razor语法中的@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}
if(格式[“五位数字”]>99999 | |格式[“五位数字”]<10000 | | |字符串.IsNullorEmpty(tablename.textHasThanFiveDigits))
{
AddModelError(“textHasThorFiveDigits”,“您必须输入一个5位数字”);
返回视图(ViewWithTextBox);
}else{do database stuff}

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

你可以使用
min
max
html属性,但它们不是在所有浏览器中都强制执行的,所以最好依赖Javascript/jQuery

$('.test input')。解除绑定('keyup change input paste')。绑定('keyup change input paste',函数(e){
var$this=$(this);
var val=$this.val();
var valLength=val.length;
var maxCount=$this.attr('max');
如果(valLength>maxCount){
$this.val($this.val().substring(0,maxCount));
}
}); 

您可以使用
min
max
html属性,但它们不是在所有浏览器中都强制执行的,因此最好依赖Javascript/jQuery

$('.test input')。解除绑定('keyup change input paste')。绑定('keyup change input paste',函数(e){
var$this=$(this);
var val=$this.val();
var valLength=val.length;
var maxCount=$this.attr('max');
如果(valLength>maxCount){
$this.val($this.val().substring(0,maxCount));
}
}); 


您可以使用一些客户端插件来实现此行为。但也要始终在服务器上进行验证。不要信任来自客户端的数据。在视图中使用jQuery屏蔽的TextBox控件来限制输入(有很多可用的),但为客户端和服务器端验证添加
[RegularExpression]
属性您可以使用一些客户端插件来实现此行为。但也要始终在服务器上进行验证。不要信任来自客户端的数据。在视图中使用jQuery屏蔽文本框控件来限制输入(有很多可用的),但为客户端和服务器端验证添加一个
[RegularExpression]
属性我知道我可能正在更改问题,但是我要强调的是,
TextBox
的内容通过
jQuery
>正好是5如果您使用这种文本框,您只需添加参数即可:但我们这里没有指定最小长度。我需要精确到5。如果小于5,则在开始处添加0,使其为5。我知道我可能会更改问题,但我可以通过
jQuery
>强调一下,
TextBox
的内容正好是5。如果您使用这种文本框,您只需添加参数即可:但我们这里没有指定最小长度。我需要精确到5。如果小于5,则在开始处添加零,使其为5。