首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >指定多行文本框的最大长度

指定多行文本框的最大长度
EN

Stack Overflow用户
提问于 2009-08-26 12:18:55
回答 13查看 138.3K关注 0票数 85

我正在尝试使用asp:

代码语言:javascript
复制
<asp:TextBox ID="txtInput" runat="server" TextMode="MultiLine"></asp:TextBox>

我想要一种指定maxlength属性的方法,但是显然对于multiline textbox是不可能的。我一直在尝试为onkeypress事件使用一些JavaScript:

代码语言:javascript
复制
onkeypress="return textboxMultilineMaxNumber(this,maxlength)"

function textboxMultilineMaxNumber(txt, maxLen) {
    try {
        if (txt.value.length > (maxLen - 1)) return false;
    } catch (e) { }
    return true;
}

虽然运行良好,但这个JavaScript函数的问题是,在写入字符后,它不允许删除和替换任何字符,这不是我们所希望的行为。

你有没有想过我可以在上面的代码中修改什么来避免这种情况,或者任何其他方法来绕过它?

EN

回答 13

Stack Overflow用户

回答已采纳

发布于 2009-08-26 12:29:54

试试这个javascript:

代码语言:javascript
复制
function checkTextAreaMaxLength(textBox,e, length)
{

        var mLen = textBox["MaxLength"];
        if(null==mLen)
            mLen=length;

        var maxLength = parseInt(mLen);
        if(!checkSpecialKeys(e))
        {
         if(textBox.value.length > maxLength-1)
         {
            if(window.event)//IE
              e.returnValue = false;
            else//Firefox
                e.preventDefault();
         }
    }   
}
function checkSpecialKeys(e)
{
    if(e.keyCode !=8 && e.keyCode!=46 && e.keyCode!=37 && e.keyCode!=38 && e.keyCode!=39 && e.keyCode!=40)
        return false;
    else
        return true;
}

在控件上调用它,如下所示:

代码语言:javascript
复制
<asp:TextBox Rows="5" Columns="80" ID="txtCommentsForSearch" MaxLength='1999' onkeyDown="checkTextAreaMaxLength(this,event,'1999');"  TextMode="multiLine" runat="server"> </asp:TextBox>

您也可以只使用checkSpecialKeys函数来验证javascript实现上的输入。

票数 44
EN

Stack Overflow用户

发布于 2015-06-15 21:03:40

保持简单。大多数现代浏览器支持文本区域(包括IE)上的maxlength属性,因此只需在代码隐藏中添加该属性即可。没有JS,没有Jquery,没有继承,没有自定义代码,没有大惊小怪,没有混乱。

VB.Net:

代码语言:javascript
复制
fld_description.attributes("maxlength") = 255

C#

代码语言:javascript
复制
fld_description.Attributes["maxlength"] = 255
票数 30
EN

Stack Overflow用户

发布于 2011-03-31 22:53:41

使用你自己的:

代码语言:javascript
复制
function Count(text) 
{
    //asp.net textarea maxlength doesnt work; do it by hand
    var maxlength = 2000; //set your value here (or add a parm and pass it in)
    var object = document.getElementById(text.id)  //get your object
    if (object.value.length > maxlength) 
    {
        object.focus(); //set focus to prevent jumping
        object.value = text.value.substring(0, maxlength); //truncate the value
        object.scrollTop = object.scrollHeight; //scroll to the end to prevent jumping
        return false;
    }
    return true;
}

像这样调用:

代码语言:javascript
复制
<asp:TextBox ID="foo" runat="server" Rows="3" TextMode="MultiLine" onKeyUp="javascript:Count(this);" onChange="javascript:Count(this);" ></asp:TextBox>
票数 22
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1334286

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档