Счетчик символов Javascript для SMS TextArea в html - PullRequest
0 голосов
/ 24 мая 2018

Я создал страницу отправки смс для отправки смс.Я показываю счетчик символов, начиная с 160, используя Javascript.Проблема в том, что я не знаю, как рассчитать количество SMS после каждых 160 символов.

мой код в функции js:

function CountCharIndividual(txtIndividualMessage) {
        var count = document.getElementById(txtIndividualMessage).value.length;
        if (count > 1 && count <= 160) {
            document.getElementById('charstatus2').innerHTML = 160 - document.getElementById(txtIndividualMessage).value.length;
        }
        if (document.getElementById(txtIndividualMessage).value.length > 160 - 1) {
            document.getElementById('charstatus2').innerHTML = "Maximum characters reached & now " + "showing new count: " + document.getElementById(txtIndividualMessage).value.length;
        }
        if (document.getElementById(txtIndividualMessage).value.length >= 160) {
            document.getElementById('smsCount').innerHTML = 1;
        }
    }

Он отображается для первых 160 символов вinnerHTML в smsCount, но не увеличивается тогда.

Ответы [ 4 ]

0 голосов
/ 24 мая 2018

Попробуйте код ниже, если это поможет

function CountCharIndividual(txtIndividualMessage) {

  var count = document.getElementById(txtIndividualMessage).value.length;
  var maxLength = 160;
  var smsCount = parseInt(count / maxLength);
  if (smsCount > 0) {
    document.getElementById('smsCount').innerHTML = smsCount;
  } else {
    if (count > (maxLength - 1)) {
      document.getElementById('charstatus2').innerHTML = "Maximum characters reached & now " + "showing new count: " + count;
    } else {
      document.getElementById('charstatus2').innerHTML = maxLength - count;
    }

  }

}
0 голосов
/ 24 мая 2018

Вы можете использовать эту логику

var limit = 160;   // it will be fixed value
var charCount = 170  // it will be dynamic value

var result = Math.ceil(charCount/limit)

Теперь Результат покажет количество использованных смс.

enter image description here

0 голосов
/ 24 мая 2018

Вам необходимо вычислить общее количество символов в текстовом поле и разделить его на длину сообщения с 160 символами в вашем случае

function CountCharIndividual(txtIndividualMessage) {
        var count = document.getElementById(txtIndividualMessage).value.length;
        if (count > 1 && count <= 160) {
            document.getElementById('charstatus2').innerHTML = 160 - count;
        }
        if (document.getElementById(txtIndividualMessage).value.length > 160 - 1) {
            document.getElementById('charstatus2').innerHTML = "Maximum characters reached & now " + "showing new count: " + count;
        }
        if (document.getElementById(txtIndividualMessage).value.length <= 160) {
            document.getElementById('smsCount').innerHTML = 1;
        }
        else {
          document.getElementById('smsCount').innerHTML = (count - (count % 160)) / 160;
        }
    }
0 голосов
/ 24 мая 2018

Я думаю, что последняя if condition является причиной.Попробуйте следующим образом

function CountCharIndividual(txtIndividualMessage) {
        var count = document.getElementById(txtIndividualMessage).value.length;
        if (count >= 1 && count <= 160) {
            document.getElementById('charstatus2').innerHTML = 160 - count;
        }
        else if (count > 160 - 1) {
            document.getElementById('charstatus2').innerHTML = "Maximum characters reached & now " + "showing new count: " + count;
        }
        else {
            document.getElementById('smsCount').innerHTML = parseInt(count / 160);
        }
    }
...