微博文本域字符数判断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" //超过限定字符提示文字的样式
});
(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" //超过限定字符提示文字的样式
});
相关文章推荐
- 微博文本域字符数判断JS实现方式
- 【jQuery插件】chackTextarea-类似于新浪腾讯微博文本域字符数判断
- jQuery自动补全autocomplete插件使用,三种获取数据源方式具体实现(true)
- Jquery插件--判断文本框还剩多少字符可以输入
- jQuery插件实现新浪微博自动底部加载
- jquery插件方式实现table查询功能的简单实例
- Jquery实现弹出层分享微博插件具备动画效果
- 自定义jQuery插件方式实现强制对象重绘的方法
- jquery插件方式实现table查询功能
- Jquery实现弹出层分享微博插件具备动画效果
- jquery实现textarea输入字符控制(仿微博输入控制字符)
- js replace 全局替换 以表单的方式提交参数 判断是否为ie浏览器 将jquery.qqFace.js表情转换成微信的字符码 手机端省市区联动 新字体引用本地运行可以获得,放到服务器上报404 C#提取html中的汉字 MVC几种找不到资源的解决方式 使用Windows服务定时去执行一个方法的三种方式
- jQuery仿手风琴效果另一种实现方式,非插件.原创
- jQuery插件简单实现方法
- 【js】用DOM方式实现jQuery.ajax
- jquery.cookie插件实现网页换肤功能
- android中自定义view---实现竖直方向的文字功能,文字方向朝上,同时提供接口,判断当前touch的是哪个字符,并改变颜色
- Jquery插件实现图片显示【客户端】
- Jquery通过Ajax方式来提交Form表单的具体实现