<text区域>字符限制
<textarea> character limit
使用纯Javascript设置文本区域中最大字符数的跨浏览器方法是什么?maxlength
不适用于Opera和IE9及以下版本的文本区域(尽管它适用于所有主要的输入浏览器)。
一旦达到字符限制,文本区域不应允许输入更多字符。使用Ctrl+V或右键单击上下文菜单粘贴的文本应在字符限制处剪切。这意味着仅使用onkey___
事件的解决方案是不够的。
生成函数,这些函数将截断值或在您的条件下阻止事件发生,然后将它们添加为您感兴趣的所有事件的几个不同侦听器。
function snip(len) {
return function (e) {e.target.value = e.target.value.slice(0, len);};
}
function prevent(len) {
return function () {
if (e.target.value.length >= len) {
e.preventDefault();
return false;
}
};
}
var len = 5; // choose your length however you want
var textarea = document.getElementById('texta'), // get the node
trunc = snip(len),
prev1 = prevent(len),
prev2 = prevent(len - 1);
textarea.addEventListener('change' , trunc, true);
textarea.addEventListener('input' , trunc, true);
textarea.addEventListener('keydown' , prev2, true);
textarea.addEventListener('keypress', prev2, true);
textarea.addEventListener('keyup' , prev1, true);
textarea.addEventListener('paste' , trunc, true);
事件可能需要在IE 中以不同方式附加
DEMO
相关文章:
- 文本区域JavaScript中的字符限制-特殊情况
- 更换163;使用javascript从html文本区域中提取字符
- 为文本区域提供每行的最大字符限制
- Rails 4 - 设置文本区域的字符数限制
- 如何使用javascript计算文本区域中键入的字符数
- 计算文本区域中的字符数
- 限制用户在文本区域最多粘贴(40)个字符
- 获取文本区域中字符的行和列
- 多重<text区域>具有字符计数器+行限制器的字段
- 检查任何输入或文本区域中是否存在非法字符
- 粘贴文本时删除文本区域中的字符
- 重制版字符文本区域问题
- 文本区域字符限制和空格修剪
- JavaScript 防止文本区域中的特殊字符
- 文本区域中的新行字符会增加 C# 中的文本长度
- 如何使用Javascript获取文本区域内字符中的鼠标位置
- Titanium App (iOS) 中的实时文本区域字符数
- 获取文本区域(单词、行、字符)的统计信息
- JQuery 字符限制器,同时忽略文本区域中的空格
- 如何通过javascript在文本区域中插入/删除字符