在文本框中用户不能连续输入 15 位数字,mvc3
In Text box user cannot enter 15 digits continuously, mvc3
我们遇到用户无法在文本框中输入 15 个连续数字(即 411111111111111)的情况,因此我们已使用 mvc 中的数据注释对其进行验证?
如果文本框不是多行,请尝试设置其 MaxLength 属性:
<asp:TextBox ID="tb1" runat="server" MaxLength="15"></asp:TextBox>
编辑:由于您的最大长度是 50,并且您想检查是否输入了 15 个连续的数字,您可以尝试使用 'keypress' 事件:
<script type="text/javascript">
$(function () {
$("#<%=tb1.ClientID %>").keypress(function () {
/* check here if the textbox' data is valid */
});
});
</script>
不过这对您 copy/paste 的操作没有帮助
您可以使用 [ReqularExpression]
属性,该属性将提供客户端和服务器端验证
[RegularExpression(@"^((?!\d{15}).)*$)", ErrorMessage = "The value cannot contain 15 or more consecutive digits")]
public string YourProperty { get; set; }
否定先行 - (?!\d{15})
- 指定如果有 15 个(或更多)连续数字,则匹配被丢弃并且其无效。
有关正则表达式和一些测试用例的更详细说明(为简单起见,使用 3 位数字),请参阅 RegExr。
我们遇到用户无法在文本框中输入 15 个连续数字(即 411111111111111)的情况,因此我们已使用 mvc 中的数据注释对其进行验证?
如果文本框不是多行,请尝试设置其 MaxLength 属性:
<asp:TextBox ID="tb1" runat="server" MaxLength="15"></asp:TextBox>
编辑:由于您的最大长度是 50,并且您想检查是否输入了 15 个连续的数字,您可以尝试使用 'keypress' 事件:
<script type="text/javascript">
$(function () {
$("#<%=tb1.ClientID %>").keypress(function () {
/* check here if the textbox' data is valid */
});
});
</script>
不过这对您 copy/paste 的操作没有帮助
您可以使用 [ReqularExpression]
属性,该属性将提供客户端和服务器端验证
[RegularExpression(@"^((?!\d{15}).)*$)", ErrorMessage = "The value cannot contain 15 or more consecutive digits")]
public string YourProperty { get; set; }
否定先行 - (?!\d{15})
- 指定如果有 15 个(或更多)连续数字,则匹配被丢弃并且其无效。
有关正则表达式和一些测试用例的更详细说明(为简单起见,使用 3 位数字),请参阅 RegExr。