检查用户输入是否为整数(Javascript)

时间:2015-01-23 11:42:00

标签: javascript html

当用户点击按钮时,我想检查用户是否在上面的框中输入了一个整数值。如果为false显示警告消息,如果为true则转到下一页。我错过了什么,看起来很简单......

<html>
<body>

 <script type="text/javascript">

   function checkInteger() {
        var userData = document.getElementById("userInput");
if((typeof(userData)=='number') && (myNum.toString().indexOf('.')==-1)) {
 return true;
      }
        else {

            alert("Error!");
            return false;
         }
    }
 </script>

 <form action="page2.html" enctype="multipart/form-data" onsubmit="return checkInteger()">
 <input type="text" id="userInput"> Enter number here </input>
<br><br><br>
    <input type="submit" value = "Test" />
</form>
<br>

 </body>
</html>

谢谢! :)

5 个答案:

答案 0 :(得分:1)

首先,不要在表单标签中返回该函数。 完全删除onsubmit属性。

而是将一个类分配给输入元素,例如“checknum”

<html>
<body>

<script type="text/javascript">

$(".checknum").keydown(function (e) {
        // Allow ctrl+A
    if ((e.keyCode == 65 && e.ctrlKey === true) || 
             // Allow: home, end, left, right, down, up and //Allow delete, backspace, tab
            (e.keyCode >= 35 && e.keyCode <= 40) || e.keyCode==46 || e.keyCode==8 || e.keyCode==9) {
                 // let it happen, don't do anything
                 return;
        }
   // Ensure that it is a number and stop the keypress
    if ((e.shiftKey || (e.keyCode < 48 || e.keyCode > 57)) && (e.keyCode < 96 || e.keyCode > 105)) {
        e.preventDefault();
    }        
  });


</script>


 <form action="page2.html" enctype="multipart/form-data">
 <input type="text" id="userInput" class="checknum"> Enter number here </input>
<br><br><br>
 <input type="submit" value = "Test" />

</form>

</body>
</html>

功能礼貌:有人在我用过的同一网站上回答了这个问题。

答案 1 :(得分:1)

您可以使用===运算符,如下所示检查某些内容是否为整数。

if (data === parseInt(data, 10))
    alert("data is integer")
else
    alert("data is not an integer")

答案 2 :(得分:1)

这是解决方案。您缺少.value和文本字段属性

<html>
<body>

 <script type="text/javascript">

  function checkInteger() {
       var userData = document.getElementById("userInput").value;
if(!isNaN(parseInt(userData))) {
 return true;
   }
     else {

        alert("Error!");
        return false;
     }
}
</script>

<form action="page2.html" enctype="multipart/form-data" onsubmit="return     checkInteger()">
 <input type="text" id="userInput"> Enter number here </input>
 <br><br><br>
  <input type="submit" value = "Test" />
</form>
 <br>

 </body>
 </html>

答案 3 :(得分:1)

<html>
  <head>
    <script data-require="jquery@2.1.3" data-semver="2.1.3" src="https://code.jquery.com/jquery-2.1.3.min.js"></script>
    <script type="text/javascript">
      var check = function(){
        if($.isNumeric($('#userInput').val()))
          alert('ok');
        else
          alert('not okay');
      }     
   </script>
  </head>
  <body>
    <form>
      <input type="text" id="userInput" />
      <button id="sub" onclick="check()" value="Test">test</button>
    </form>
  </body>
</html>

试试这段代码..在Jquery中有很多内置函数

答案 4 :(得分:0)

您可以创建两个功能。一个用于基本处理字符串的每个字符,另一个用于检查该字符是否为数字。我已经在我的代码中包含了一个我在其他用途​​中测试过的示例。

// Validation functions
// Checks if argument is numeric or not
function isNumeric(n)
{
    if (!isNaN(n))
    {
        return true;
    }
    else
    {
        return false;
    }
}

// Checks if argument contains any numeric characters or not
function hasNumber(s)
{
    for (var i = 0; i < s.length; i++)
    {
        var n = s.charAt(i);
        if (isNumeric(n))
        {
            return true;
        }
    }
    return false;
}