Javascript 限制短信字符&;文本区计数
我尝试在给定的javascript中为html文本区域添加一个字符限制器。此外,我想添加一个总剩余计数器。但是我的代码不起作用 你知道我错在哪里吗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
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条!(或每种编码类型的限制器/计数器)