1

我想限制用户不能在文本框中输入超过 6 个字符。当用户开始在文本框中输入并达到最大限制并尝试输入第 7 个字符时,文本框将不允许他这样做并提醒他达到了最大尺寸。我如何做到这一点?

我已经在我的代码中添加了 JavaScript 函数来执行此操作,但没有得到我调用此函数的事件,目前我正在调用 on-blur 但我能够在文本框中输入超过 9 个字符,然后当我点击在一个按钮上然后我收到警报消息。如果达到最大限制,我希望在输入文本框本身时得到提示。我当前的代码如下:-

 <asp:TextBox ID="txtVolumeProcessed" runat="server" CssClass="text" MaxLength="999999" onblur="javascript:validate();"  ></asp:TextBox>

和Javascript代码是: -

function validate() {
    if (document.getElementById('<%=txtVolumeProcessed.ClientID%>').value.length > 7) {
        alert("Volume Processed not exceed 999999");
        document.getElementById('<%=txtVolumeProcessed.ClientID%>').select();
        document.getElementById('<%=txtVolumeProcessed.ClientID%>').focus();
        return false;
    }
    else {
        return true;
    }
}
4

5 回答 5

2

如果它是一个 asp.net 文本框,您可以在其上设置MaxLength属性。这将完成您正在寻找的东西。

<asp:TextBox runat="server" MaxLength="6"></asp:TextBox>
于 2012-07-16T06:01:28.223 回答
0

MaxLength 属性将获取或设置用户可以键入或粘贴到文本框控件中的最大字符数。

如果你写6那么六个字符,你可以输入。

所以999999改为6.

于 2012-07-16T06:14:51.267 回答
0

如果只想让用户输入字符MaxLength,则赋予属性值。66insted of 999999

No need to check by java script because in `asp:textbox` gives the property to set max.  characters entered by user.  
于 2012-07-16T06:23:03.397 回答
0

如果您使用的是ASP.NET Core,那么一点点 JQuery 对我有用(可能也适用于常规 ASP.NET,但未经测试):

$(document).ready(function () {
  $("input[data-val-length-max]").each(function(index) {
    // console.log( index + ": " + $(this).attr('data-val-length-max'));
    $(this).attr("maxlength", $(this).attr('data-val-length-max'));
  });
});

将上述代码与 System.ComponentModel.DataAnnotations 中的验证属性(如 MaxLengthAttribute 和/或 StringLengthAttribute)结合使用:

[StringLength(1, ErrorMessage = "中间初始值不能超过1个字符。")]

[MaxLength(1, ErrorMessage = "中间初始值不能超过1个字符。")]

您还可以根据需要使用其他验证属性。例如,我也使用正则表达式来验证中间名首字母:

[RegularExpression(@"^[a-zA-Z']*$", ErrorMessage = "只允许使用字母字符。")]

于 2018-12-19T05:01:34.823 回答
0

确保它使用默认的 TextMode;如果您尝试像 * Numbe MaxLength 之类的东西,则会被忽略。

于 2021-10-01T19:34:05.763 回答