主题: 限制字数的问题!很急啊。。求指导
作者: yiersan2, 发布日期: 2013-12-26 18:38:56, 浏览数: 2795

怎么限制字数啊?

afterChange : function(){
document.getElementById("word_count1").innerHTML=this.count(); //字数统计包含HTML代码
document.getElementById("word_count2").innerHTML=this.count('text'); //字数统计包含纯文本、IMG、EMBED,不包含换行符,IMG和EMBED算一个文字
//限制字数
var limitNum = 100; //设定限制字数
var pattern = '还可以输入' + limitNum + '字'; 
document.getElementById("word_surplus").innerHTML=pattern; //输入显示
if(this.count('text') > limitNum) {
pattern = ('字数超过限制,请适当删除部分内容');
//超过字数限制自动截取
var strValue = editor.text();
strValue = strValue.substring(0,limitNum);
editor.text(strValue);
} else {
//计算剩余字数
var result = limitNum - this.count('text'); 
pattern = '还可以输入' + result + '字'; 
}
document.getElementById("word_surplus").innerHTML=pattern; //输入显示

这种截取,如果含有表情会出现乱码,没有表情也会出现格式错误不一致,本来想在js中用var limitText=''或者

用type=hidden的Input 或用display=none的textarea存上一次输入的值,当超过字数限制时,返回上一次的值,但是发现在afterchange里给这些控件或变量传值会使文本编辑器失效,现在很烦啊。。求大神指点!谢谢了!

作者: 阿O、不拽, 发布日期: 2013-12-31 16:26:22
问题解决了吗,如果你还没解决的话,我有个方法不知道能不能满足你的需求,就是在afterchange事件里面,每次触发的时候,判断是否超过了字数限制,如果没有,就将当前的编辑器内容保存到临时变量中,如果超过了字数限制,就用临时变量的内容替换当前内容,就可以解决了
回复
作者: ☆心梦∮无痕☆, 发布日期: 2014-02-24 17:26:28

不想说太多啦 楼上那种处理方法就是这样写的:

  afterChange: function () {
                    K('.word_count').html(this.count('text'));
                    if (15000 >= this.count("text")) {
                        boolEdit = false;
                        $("#allText").css("color", "#999");
                        $(".ke-container").css("background-color", "#FFFFFF");
                        $("#allText").removeClass("Validform_wrong");
                        K('.textAlert').html("您还可以输入");
                        K('.subSize').html(15000 - this.count("text"));
                    } else {
                        boolEdit = true;
                        K('.textAlert').html("您已超过");
                        $("#allText").addClass("Validform_wrong");
                        $(".ke-container").css("background-color", "#FFE7E7");
                        $("#allText").css("color", "red");
                        K('.subSize').html(this.count("text") - 15000);
                    }
                    this.sync();
                }

回复
发表新帖 发表回复