Не удалось удалить вход в Firefox - PullRequest
0 голосов
/ 13 января 2019

Я использую скрипт для форматирования ввода для моего текстового поля. Я хочу использовать только символы - и . 1 раз и только добавлять цифры в это текстовое поле. После редактирования я хочу округлить ввод до 2 десятичных знаков.

У меня нет проблем со входом.

Когда я хочу удалить ввод, у меня возникают проблемы.

Я не могу удалить вход в Mozilla Firefox. У меня нет проблем с Google Chrome или Internet Explorer.

Кто-нибудь знает, как я могу решить эту проблему?

Вот мой сценарий:

<input type="text" class="groupOfTexbox" onchange="setTwoNumberDecimal(this)" />

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script>
  function setTwoNumberDecimal(el) {
    el.value = parseFloat(el.value).toFixed(2);
  };

  $(document).ready(function() {
    $('.groupOfTexbox').keypress(function (event) {
      return isNumber(event, this)
    });
  });

  function isNumber(evt, element) {
    var charCode = (evt.which) ? evt.which : event.keyCode
    if (
      (charCode != 45 || $(element).val().indexOf('-') != -1) &&
      (charCode != 46 || $(element).val().indexOf('.') != -1) &&
      (charCode < 48 || charCode > 57))
      return false;
    return true;
  }    
</script>

JSFiddle: http://jsfiddle.net/5zduh3a7/1/

1 Ответ

0 голосов
/ 13 января 2019

Включить возврат (код = 8) в ваш белый список:

function isNumber(evt, element) {
  var charCode = (evt.which) ? evt.which : event.keyCode
  if ((charCode != 45 || $(element).val().indexOf('-') != -1) &&
    (charCode != 46 || $(element).val().indexOf('.') != -1) &&
    (charCode < 48 || charCode > 57) &&
    (charCode != 8)) {
    return false;
  }
  return true;
}

Также обратите внимание, что для таких случаев лучше использовать keydown / keyup вместо keypress. Похоже, что IE и Chrome не запускают события keypress для некоторых специальных клавиш, таких как backspace. Вот почему ваш код работает в IE и Chrome, даже без кода клавиши возврата в белый список.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...