首页 > 解决方案 > 如何根据特定用户输入在 JavaScript 中显示警报

问题描述

在键入字母、逗号、减号、加号、括号、问号等时,我需要一个提示“请输入 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>

标签: javascriptalert

解决方案


使用Input type="number" 和 pattern="[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();
  }
}

推荐阅读