首先,注意一个小bug:
IE中,用JS 写 value ,得到的‘\n’算作两个字符,不需要再写算法
用jquery写val(),得到的‘\n’算作一个字符
火狐,不管JS的value,还是jquery的val(),‘\n’都算一个字符。
所以,为了兼容,需要用Jquery写算法;
if ($("#Content").val().length > 0)
var curr = $("#Content").val().length;
var arr = new Array();
arr = $("#Content").val().split("\n");
var num = 0;
num = (arr.length - 1) * 2;
var charnum = curr - (arr.length - 1) + num; //显示的字数
if ($("#Content").val().length > 0)
$("#" + id).html(charnum); //页面中输入字符的总个数,\n算两个字符
var len = 0;
if (curr !=undefined) {//如果用鼠标选取删除,全部删除的话curr=0,不然会报错
if ($("#Content").val().length % 67 == 0) {
len = Math.floor(charnum / 67);
}
else {
len = parseInt(charnum / 67) + 1;
}
}
else {
len = 0;
$("#" + id).html(0); //页面中输入字符的总个数,\n算两个字符
}
$("#" + id2).html(len); //页面中短信的条数,67个字算一条
//短信条数限制。
if (len > 3) {
$("#Content").attr("value", $("#Content").attr("value").substring(0, 201 - arr.length+1));
$("#" + id).html(charnum); //页面中输入字符的总个数,\n算两个字符
$("#" + id2).html(3); //页面中短信的条数,67个字算一条
}