限制Asp:TextBox不允许超过6个字符

时间:2012-07-16 05:59:42

标签: javascript asp.net

我想限制用户不能在文本框中输入超过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 个答案:

答案 0 :(得分:2)

如果是asp.net文本框,您可以在其上设置MaxLength属性。这将实现您的目标。

<asp:TextBox runat="server" MaxLength="6"></asp:TextBox>

答案 1 :(得分:0)

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

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

所以将999999更改为6

答案 2 :(得分:0)

如果希望用户仅输入MaxLength个字符6,则

将属性6的值提供给insted of 999999

No need to check by java script because in `asp:textbox` gives the property to set max.  characters entered by user.  

答案 3 :(得分: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 =“仅允许使用字母字符。”)]