Счетчик символов jQuery onkeyup показывает 1 символ, когда осталось 0

Я использую jQuery для отображения символов, оставшихся в текстовом вводе, и он работает нормально, но когда он доходит до 0 оставшихся символов, он показывает 1, хотя он не позволяет вам вводить больше. Это, наверное, что-то очевидное и простое, но сегодня это ставит меня в тупик. Вот код, который я использую:

= form.text_field :name, { required: true, class: "#{'error' if @project.errors[:name].present?}", placeholder: '40 characters max', maxlength: 40, :onkeyup => "countCharname(this)" }
span id="charName" class="margin-left-5"             

    function countCharname(val) {
      var len = val.value.length;
      if (len >= 40) {
        val.value = val.value.substring(0, 40);
      } else {
        $('#charName').text(40 - len);
      }
    };

person dotjamie    schedule 07.08.2015    source источник


Ответы (1)


Не тестируя его, я предполагаю, что когда он достигает максимальной длины, длина ввода равна 40. Это означает, что оператор if (len >= 40) верен, поэтому оператор else, который обновляет $('#charName') оставшимися символами, не запускается. .

Попробуйте изменить оператор if на (len > 40)

person Jamie Lester    schedule 07.08.2015
comment
Это сделало это! Я знал, что это будет что-то простое. Спасибо за свежий взгляд. - person dotjamie; 07.08.2015