我正在尝试使用asp:
<asp:TextBox ID="txtInput" runat="server" TextMode="MultiLine"></asp:TextBox>
我想要一种指定maxlength
属性的方法,但是显然对于multiline textbox
是不可能的。我一直在尝试为onkeypress
事件使用一些JavaScript:
onkeypress="return textboxMultilineMaxNumber(this,maxlength)"
function textboxMultilineMaxNumber(txt, maxLen) {
try {
if (txt.value.length > (maxLen - 1)) return false;
} catch (e) { }
return true;
}
虽然运行良好,但这个JavaScript函数的问题是,在写入字符后,它不允许删除和替换任何字符,这不是我们所希望的行为。
你有没有想过我可以在上面的代码中修改什么来避免这种情况,或者任何其他方法来绕过它?
发布于 2009-08-26 12:29:54
试试这个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;
}
在控件上调用它,如下所示:
<asp:TextBox Rows="5" Columns="80" ID="txtCommentsForSearch" MaxLength='1999' onkeyDown="checkTextAreaMaxLength(this,event,'1999');" TextMode="multiLine" runat="server"> </asp:TextBox>
您也可以只使用checkSpecialKeys函数来验证javascript实现上的输入。
发布于 2015-06-15 21:03:40
保持简单。大多数现代浏览器支持文本区域(包括IE)上的maxlength属性,因此只需在代码隐藏中添加该属性即可。没有JS,没有Jquery,没有继承,没有自定义代码,没有大惊小怪,没有混乱。
VB.Net:
fld_description.attributes("maxlength") = 255
C#
fld_description.Attributes["maxlength"] = 255
发布于 2011-03-31 22:53:41
使用你自己的:
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;
}
像这样调用:
<asp:TextBox ID="foo" runat="server" Rows="3" TextMode="MultiLine" onKeyUp="javascript:Count(this);" onChange="javascript:Count(this);" ></asp:TextBox>
https://stackoverflow.com/questions/1334286
复制相似问题