使用多行文本框(生成文本区域)设置时,MaxLength属性不起作用。什么是最好的解决方法?我想用最少的丑陋JavaScript获得基本的,预期的功能等。只是防止用户输入超过最大数量的字符。如何为多行TextBox设置maxlength?
回答
如果您想让用户知道他在写入时是否超出了字符数量,则可以使用附加到keypress事件的JavaScript函数。这个函数将测试输入的长度,并在达到最大值时取消字符渲染。
另一种选择是使用RegularExpressionValidator
控件验证提交时的输入。
在我看来,第一个选择更好。
我没有添加任何代码,因为谷歌充满了各种口味的例子,这是一个非常普遍的任务。
Here您有一个示例搜索可能会有帮助。
嘿pukipuki你可以做如下:
<asp:TextBox ID="txtValue" runat="server"TextMode="MultiLine" Rows="10"Columns="50"></asp:TextBox>
$(document).ready(function(){
var MaxLength = 250;
$('#txtValue').keypress(function(e)
{
if ($(this).val().length >= MaxLength)
{
e.preventDefault();
}
});});
你可以看到更多在此以下链接: http://jquerybyexample.blogspot.in/2010/10/set-max-length-for-aspnet-multiline.html
虽然这会阻止用户输入更多文本,但也会阻止他们使用框中的删除或退格键(或任何其他键),因此他们可以'实际上在文本达到极限时编辑文本。 – 2012-07-19 13:47:06
你的答案比接受的答案更完整和有用。 +1 for – 2012-09-11 22:06:41
不适用于复制和粘贴 – fubo 2014-01-31 15:09:29
如果您使用的是模型对象绑定到文本框,您可以使用DataAnnotations属性设置该属性的最大长度。我基于MVC,但它也适用于ASP.NET!
这样你就不会乱用任何Javascript或设置任何标记。
不幸的是,WebForms没有像MVC这样的数据注释的本地支持。但有一些解决方法,我检查出来,谢谢!理想答案的完美例子)+1 – 2012-03-21 18:25:04
如果你不关心旧的浏览器(见supported browsers here),
可以设置的MaxLength通常这样
<asp:TextBox ID="txt1" runat="server" TextMode="MultiLine" MaxLength="100" />
,并迫使它打印出来的HTML
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
txt1.Attributes.Add("maxlength", txt1.MaxLength.ToString());
}
试试这个......
Dim script As String = ""
script = script + " <script type='text/javascript'> function CheckLength(obj) {"
script = script + " var object = document.getElementById(obj);"
script = script + " if (object.value.length > 5) {"
script = script + " object.focus();"
script = script + " object.value = object.value.substring(0, 5); "
script = script + " object.scrollTop = object.scrollHeight; "
script = script + " return false;"
script = script + " }"
script = script + " return true;"
script = script + " }</script>"
Dim b As New TextBox()
b.ID = "btnSomeButton"
b.TextMode = TextBoxMode.MultiLine
Mypanel.Controls.Add(b)
b.Attributes.Add("onkeyup", "return CheckLength('" & b.ClientID & "');")
Page.ClientScript.RegisterStartupScript(Page.GetType(), "key", script, False)
这里是一个跨浏览器的解决方案:
<asp:TextBox TextMode="MultiLine" runat="server" ID="txtPurpose" Columns="50" Rows="2" onkeypress="return isokmaxlength(event,this,255);" ClientIDMode="static"></asp:TextBox>
的Javascript:
function isokmaxlength(e,val,maxlengt) {
var charCode = (typeof e.which == "number") ? e.which : e.keyCode
if (!(charCode == 44 || charCode == 46 || charCode == 0 || charCode == 8 || (val.value.length < maxlengt))) {
return false;
}
}
你要想想复制和粘贴。这有点棘手,我只是用Jquery禁用它。但是您可以创建自己的功能来执行更复杂的验证。但在我的情况下,不允许复制和粘贴。
Jquery的禁用复制和粘贴://计算器:
jQuery(function ($) {
$("#txtPurpose").bind({
paste: function (e) {
e.preventDefault();
}
});
});
- 1. ASP.Net多行TextBox MAXLENGTH
- 2. pyqt4 QTextEdit - 如何设置MaxLength?
- 3. WPF TextBox MaxLength警告
- 4. TextBox-Control的MaxLength属性有多可靠?
- 5. wpf,如何限制TextBox的MaxLength?
- 6. EF6设置的MaxLength
- 7. 设置不同的颜色为每个行多行TextBox
- 8. pyqt4 QComboBox setEditable(True) - 如何设置MaxLength?
- 9. 如果输入类型设置为Number如何使用sapui5设置maxlength
- 10. 在textarea中设置maxlength
- 11. 如何为react-rte编辑器设置maxlength属性
- 12. 如何在WPF中为组合框设置maxlength?
- 13. 如何在asp.net中为unicode文本框设置maxlength?
- 14. 如何为UITableViewRowAction设置多行标题
- 15. 如何将Edittext设置为多行?
- 16. 根据在Linq中绑定的字段设置Windows Phone TextBox的MaxLength到SQL
- 17. 正整数/负整数VB.NET textbox maxlength
- 18. 如何在TextBox上设置值
- 19. 如何在TextBox中设置前导?
- 20. 如何设置TextBox标题的样式?
- 21. WinRT TextBox MaxLength不会将\ n \ r计为两个字符
- 22. 为什么ng-maxlength将我的有效输入设置为undefined?
- 23. 如何将Indic IME模式设置为特定的TextBox?
- 24. 如何将WinForms TextBox的前几个字符设置为只读?
- 25. 如何使用ReactiveUI为TextBox设置ViewModel绑定?
- 26. 如何将passwordchar属性设置为asp.net TextBox?
- 27. 如何将SkinID设置为UserControl的CodeBehind文件中的TextBox?
- 28. 在contenteditable元素中设置maxlength
- 29. 设置maxlength输入JQuery失败
- 30. 设置MaxLength会给你错误
[指定最大长度为多行文本框](HTTP的可能重复。com/questions/1334286/specify-maxlength-for-multiline-textbox) – 2015-06-03 08:22:45