2016-12-02 22 views
0

我有2个计数器,其中一个显示剩余字符160每个消息和另一个显示短信总数如果字符超过160,两个工作正常,直到160个字符,但后160个字符,显示剩余字符的第一个计数器停止为0,我希望以递减方式从160再次开始,请检查代码和屏幕截图。增加160个字符后使用javascript的短信柜台

的Javascript

function textCounter(field,field2,maxlimit) { 
    var countfield = document.getElementById(field2); 
    if (field.value.length > maxlimit) {    
     countfield.value = 160 - field.value.length;    
    } else { 
     countfield.value = maxlimit - field.value.length; 
    } 
} 

HTML

<textarea class="text-input--underbar" placeholder="Enter Message" style="width: 100%; height: 100px;" onkeyup="textCounter(this,'counter',160);" ng-model="message" name="message" id="message"></textarea> 
<br> 
Remaining Characters : <input disabled maxlength="3" size="3" value="160" id="counter">/SMS 
<br> 
Total SMS(s) : {{ (message.length - message.length % 160)/160 + 1 }} 
<br> 

enter image description here

ADDED

最初,当文本区是空的总SMS(S):NaN时,我该如何设置我在那里使用的表达式的初始值。

+2

' countfield.value = field.value.length%160'? – Fefux

+0

@Fefux'countfield.value = field.value.length%160'正在递增计数器。 –

+0

我更新了我的答案。对不起 – Fefux

回答

3

您只需在改变你的JS:

function textCounter(field,field2,maxlimit) { 
    var countfield = document.getElementById(field2); 
    countfield.value = maxlimit - (field.value.length % maxlimit); 
} 

EDIT(与南值):

function textCounter(field,field2,maxlimit) { 
    var countfield = document.getElementById(field2); 
    countfield.value = isNaN(field.value.length) ? maxlimit : maxlimit - (field.value.length % maxlimit); 
} 
0

要获得剩下的字符为每条短信需要

countfield.value = maxlenght - field.value.length % maxlenght ; 
相关问题