您的位置:首页 > Web前端 > JQuery

微博文本域字符数判断JQuery插件实现方式

2012-10-19 17:28 393 查看
项目中有一个类似于新浪腾讯微博文本域字符数判断,就是想腾讯微博和新浪微博那样,判断文本框中最多嫩输入140个字,将中文视为一个字符,将英文视为半个字符,也就是两个英文字符按一个字符计算。如果超出就提示!并且实时提示可是输入的文字数。





(function($){

$.fn.chackTextarea = function(options) {

var opts = $.extend({},$.fn.chackTextarea.deflunt,options);

//将中文视为一个字符,将英文视为半个字符,也就是两个英文字符按一个字符计算。

var chackNums=opts.chackNum*2;

//设置初始文本

$(this).find(opts.chackNumObj).html("你还能输入" +opts.chackNum +"个字!");

var chackText=function($this){

//清除timer

$(opts.chackObj).blur(function(){

clearInterval(this.timer);

});

$(opts.chackObj).focus(function(){

var timer=setInterval(function(){

var newvalue = $this.find(opts.chackObj).val().replace(/[^\x00-\xff]/g, "**");

if(newvalue.length>=0){

if (newvalue.length > chackNums) {

$this.find(opts.chackNumObj).html("已超出" +Math.ceil((newvalue.length - chackNums)/2) +"个字!");

$this.find(opts.chackNumObj).addClass(opts.errorClass);

$this.find(opts.chackBtn).attr("disabled","disabled");

$this.find(opts.chackBtn).addClass(opts.disabledClass);

}else{

$this.find(opts.chackNumObj).html("你还能输入" +Math.ceil((chackNums-newvalue.length)/2) +"个字!");

$this.find(opts.chackNumObj).removeClass(opts.errorClass);

$this.find(opts.chackBtn).attr("disabled","");

$this.find(opts.chackBtn).removeClass(opts.disabledClass);

}

}else{

$this.find(opts.chackBtn).removeClass(opts.disabledClass);

$this.find(opts.chackNumObj).removeClass(opts.errorClass);

}

},500);

return this;

});

};

return $(this).each(function() {

chackText($(this));

});

};

$.fn.chackTextarea.deflunt={

chackNum : 140,

chackObj:".chackTextarea-area",

chackNumObj :".chackTextarea-num",

chackBtn:".chackTextarea-btn",

disabledClass:"chackTextarea-disabled",

errorClass:"chackTextarea-errortxt"

};

})(jQuery);
JS代码调用方式:

//默认的参数

$(".chackTextarea").chackTextarea({

chackNum : 140,//限定字数,将中文视为一个字符,将英文视为半个字符,也就是两个英文字符按一个字符计算。

chackObj:".chackTextarea-area", //文本域的hock

chackNumObj :".chackTextarea-num",//提示文字的hock

chackBtn:".chackTextarea-btn", //按钮的hock

disabledClass:"chackTextarea-disabled",//按钮disabled状态下的样式

errorClass:"chackTextarea-errortxt" //超过限定字符提示文字的样式

});
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: