textArea的字符数限制输入在IE老大哥面前表现很无力啊。
没有关系,js能够帮助我们解决问题。
现在看看问题一:限制特定内容的输入
为了给各位看官省时省心,最高效最方便就是采用正则:
以禁止特殊字符输入为例:
var NONE_ASCII_CHARS = /[^ \t-~]/g;
if (NONE_ASCII_CHARS.test(valueSp)) {
alert('Please remove any special characters or symbols.')
}
valueSp定义为textarea的值内容。将事件确定为keydown 和keyup两项时发生。其它情况,各位自己更改正则规则。
问题二:限制输入内容的字符数
我们可以定义一个checkLength的方法,
var checkLength = function(control, length) {
if (control != null && control != 'undefined') {
var area = $(control);
if (area.val().length > length) {//handle paste
area.val(area.val().slice(0, length));
alert("Please input less than " + length + " characters.");
return false;
}
}
return true;
}
在textArea里的属性中加入 onchange="return checkLength(this, 450)" onkeyup="return checkLength(this, 450)"
代码如下:
<textarea type="text" wrap="virtual" onchange="return checkLength(this, 450)" onkeyup="return checkLength(this, 450)"></textarea>
this为目标对象,450为字符数。
这样一来,textarea的问题就能轻松解决了。