Как показать предупреждение в JavaScript на основе конкретного пользовательского ввода - PullRequest
0 голосов
/ 29 мая 2018

Мне нужно оповещение, которое говорит «введите цифру от 0 до 9, пожалуйста» при вводе буквы, запятой, минус, плюс, скобки, знак вопроса и т. Д. (Можно вводить только цифры).

Мое предупреждение не работает, я не могу его подключить.
Я прошу вас о помощи.

Предупреждение должно отображаться после попытки ввода букв, запятых и т. Д. В таблице, кроме цифр

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<html>

<head>
  <script src="http://code.jquery.com/jquery-1.9.1.js" type="text/javascript"></script>
  <meta charset="utf-8">
</head>

<body>
  <script type="text/javascript">
    (function($) {
      $.fn.average = function() {

        var sum = 0;
        this.each(function() {
          sum += parseFloat($(this).val());
          //;
        });

        return sum / $(this).length;
      }

    })(jQuery);
    $(document).ready(function() {
      $(":reset")
    });


    $(document).ready(function() {
      $("#calc").click(function() {
        var s = $("input[type='number']").average();
        console.debug(s);
        $('#result').html(s);
      });
      $(".reset").on('click', function() {
        $("#result").html(" ");
      })
    });
  </script>

  <h1>Oblicz średnią:</h1>
  <form action="">
    <input onkeypress="if((event.keyCode < 48 || event.keyCode > 57) && (event.keyCode != 44))return false" type="number"><br>
    <input onkeypress="if((event.keyCode < 48 || event.keyCode > 57) && (event.keyCode != 44))return false" type="number"><br>
    <input onkeypress="if((event.keyCode < 48 || event.keyCode > 57) && (event.keyCode != 44))return false" type="number"><br>
    <div id="result" type="reset"></div><br>
    <input type="button" id="calc" value="Licz">
    <input type="reset" value="Reset" class="reset">
  </form>

  <script>
    function setTimeout(function() {}, 10);
    () {
      confirm("Press a button!");
    }
  </script>

</body>

</html>

1 Ответ

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

Использование Тип ввода = "число" с шаблоном = "[0-9] *" допускает использование букв в Firefox в качестве ссылки.

Таким образом, с помощью regex выможет предотвратить различные типы ввода.Поэтому в вашем методе onkeypress используйте следующую функцию:

<input onkeypress="preventNonNumericalInput(event)" type="number">

Затем объявите эту функцию в вашем файле js:

function preventNonNumericalInput(e) {
  e = e || window.event;
  var charCode = (typeof e.which == "undefined") ? e.keyCode : e.which;
  var charStr = String.fromCharCode(charCode);

  if (!charStr.match(/^[0-9]+$/)){
    alert("Enter a digit from 0 to 9 please")
    e.preventDefault();
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...