Javascript 限制短信字符&;文本区计数

Javascript 限制短信字符&;文本区计数,javascript,jquery,html,sms,Javascript,Jquery,Html,Sms,我尝试在给定的javascript中为html文本区域添加一个字符限制器。此外,我想添加一个总剩余计数器。但是我的代码不起作用 你知道我错在哪里吗 maxLen=640; if(text.length>maxLen) {document.getElementById("message").value=text.substring(0,maxLen);} else {document.getElementsByClassName("totalcounter").value=maxLen-t

我尝试在给定的javascript中为html文本区域添加一个字符限制器。此外,我想添加一个总剩余计数器。但是我的代码不起作用

你知道我错在哪里吗

maxLen=640;
if(text.length>maxLen)
{document.getElementById("message").value=text.substring(0,maxLen);}

else
{document.getElementsByClassName("totalcounter").value=maxLen-text.length;}   

->我的问题是第62-70行。

是否尝试了属性maxlength of textarea

<textarea maxlength="50">

要使代码正常工作,请在“return”(如下所示)之前移动if-else块,并使用
document.getElementsByClassName(“totalcounter”)[0]。innerHTML=maxLen-text.length
而不是
document.getElementsByClassName(“totalcounter”)。value=maxLen-text.length

maxLen=640;
        if(text.length>maxLen)
    {
        document.getElementById("message").value=text.substring(0,maxLen);
    }
        else
    {
        document.getElementsByClassName("totalcounter")[0].innerHTML=maxLen-text.length;
    }     
  return count = {
    encoding: encoding,
    length: length,
    per_message: per_message,
    remaining: remaining,
    messages: messages
  };

我的解决方案如下:

将短信文本限制在5条信息之后(在手机上显示为1条),并添加一个总剩余计数器

<!-- maxLen GSM7: 765 chars = 5 Messages
<!-- maxLen GSM7EX: 765 chars - (number of used "gsm7bitExChar"-Chars * 2)= 5 Messages  
<!-- maxLen UTF16: 335 chars = 5 Messages     

if(encoding == 'GSM_7BIT'){
     maxLen=764;

if(text.length>maxLen)
{
  document.getElementById("message").value=text.substring(0,maxLen);
}
else
{
  document.getElementsByClassName("totalcounter")[0].innerHTML=maxLen-text.length;
}   

  return count = {
    encoding: encoding,
    length: length,
    per_message: per_message,
    remaining: remaining,
    messages: messages
    }

}; <!-- close if encoding 1

  if(encoding == 'GSM_7BIT_EX'){
    maxLen=762;

if(text.length>maxLen)
{
  document.getElementById("message").value=text.substring(0,maxLen);
}
else
{
  document.getElementsByClassName("totalcounter")[0].innerHTML=maxLen-text.length;
}   

  return count = {
    encoding: encoding,
    length: length,
    per_message: per_message,
    remaining: remaining,
    messages: messages
    }

};<!-- close if encoding 2

if(encoding == 'UTF16'){
    maxLen=334;

 if(text.length>maxLen)
{
  document.getElementById("message").value=text.substring(0,maxLen);
}
else
{
  document.getElementsByClassName("totalcounter")[0].innerHTML=maxLen-text.length;
}   

  return count = {
    encoding: encoding,
    length: length,
    per_message: per_message,
    remaining: remaining,
    messages: messages
    }

};<!-- close if encoding 3

这是没有用的,因为在这个给定的sms javascript中有一些不同的编码。对于普通字符,它计数为正常,对于另一个标准,一个字符(例如°)计数为30个字符。我不明白。我现在就在试,没什么区别。仍然算作1个字符。你说得对,但是编码类型已更改为unicode,这将一条短信从160个字符减少到70个字符(差异是90而不是30,对不起),谢谢!我问这个问题的时候它就起作用了。但我刚刚意识到,发送的信息不应该超过640个字符:确实,发送的信息不应该超过5条!(或每种编码类型的限制器/计数器)