您好,欢迎访问一九零五行业门户网

input 和 textarea 输入框最大文字限制的jquery插件_jquery

复制代码 代码如下:
/* input 和 textarea 最大文字限定插件
* 修改版, 一个中文表示1一个字, 一个英文半个字;
* textlimit - jquery plugin for counting and limiting characters for input and textarea fields
*
* pass '-1' as speed if you don't want the char-deletion effect. (don't just put 0)
* example: jquery(textarea).textlimit('span.counter',256)
*
* $version: 2009.07.25 +r2
* copyright (c) 2009 yair even-or
* vsync.design@gmail.com
*/
string.prototype.getbytes = function () {
var carr = this.match(/[^\x00-\xff]/ig);
return this.length + (carr == null ? 0 : carr.length);
};
(function(jquery) {
jquery.fn.textlimit=function(counter_el, thelimit, speed) {
var chardelspeed = speed || 15;
var togglechardel = speed != -1;
var toggletrim = true;
var that = this[0];
var isctrl = false;
updatecounter();
function updatecounter(){
if(typeof that == object)
jquery(counter_el).text(thelimit - math.ceil(that.value.getbytes()/2));
};
this.keydown (function(e){
if(e.which == 17) isctrl = true;
var ctrl_a = (e.which == 65 && isctrl == true) ? true : false; // detect and allow ctrl + a selects all.
var ctrl_v = (e.which == 86 && isctrl == true) ? true : false; // detect and allow ctrl + v paste.
// 8 is 'backspace' and 46 is 'delete'
if( this.value.length >= thelimit && e.which != '8' && e.which != '46' && ctrl_a == false && ctrl_v == false)
e.preventdefault();
})
.keyup (function(e){
updatecounter();
if(e.which == 17)
isctrl=false;
if( this.value.length >= thelimit && toggletrim ){
if(togglechardel){
// first, trim the text a bit so the char trimming won't take forever
// also check if there are more than 10 extra chars, then trim. just in case.
if ( (this.value.length - thelimit) > 10 )
that.value = that.value.substr(0,thelimit+100);
var init = setinterval
(
function(){
if( that.value.length init = clearinterval(init); updatecounter()
}
else{
// deleting extra chars (one by one)
that.value = that.value.substring(0,that.value.length-1); jquery(counter_el).text(math.ceil(that.value.getbytes()/2));
}
} ,chardelspeed
);
}
else this.value = that.value.substr(0,thelimit);
}
});
};
})(jquery);
其它类似信息

推荐信息