我有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>
ADDED
最初当文本区域为空时,总短信:NaN,我如何设置我在那里使用的表达式的初始值。
答案 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 ;