当用户点击按钮时,我想检查用户是否在上面的框中输入了一个整数值。如果为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>
谢谢! :)
答案 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;
}