使用javascript

时间:2016-12-02 15:25:05

标签: javascript angularjs

我有2个计数器,一个用于显示每条消息160个中剩余的字符,另一个用于显示字符总数超过160的短信总数,两者都工作正常,直到160个字符,但在160个字符后,第一个计数器显示剩下的字符停止为0,我希望从160开始以递减的方式重新开始,请检查代码和截图。

的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

最初当文本区域为空时,总短信:NaN,我如何设置我在那里使用的表达式的初始值。

2 个答案:

答案 0 :(得分:3)

你只需要改变你的js:

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

编辑(有NaN值):

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

答案 1 :(得分:0)

为你需要的每个短信获得剩余的字符

 countfield.value = maxlenght - field.value.length % maxlenght ;