试图检查表单中的值是否为一个设定范围内的数字

trying to checking a value within in a form is a number in a set range

本文关键字:一个 数字 范围内 检查表 检查 表单 是否      更新时间:2023-09-26

试图编写一个脚本来检查表单中的值是否为1到99999之间的数字。

1) 除了两件事之外,这个脚本基本上可以工作。如果你先输入数字,然后输入字母,它不会检测到你输入的字母和数字

2) 我希望它在onblur事件上运行脚本,但是每次我尝试脚本时都根本不起作用。

我多年前就研究过java,发现我忘记了大多数事情,如果人们能指出我错在哪里,那将是非常棒的

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<title>Please enter your age</title>
<script language="JavaScript1.2">
function checknumber(){
var x=document.checknum.pnum.value
/*does it contain non digits */
var anum=/(^'D+$)|(^'D+'.'D+$)/
if (anum.test(x))
{
alert("Please input a valid Runner ID between 1 to 99999 !")
testresult=false
}
/*is it above 99999*/
else if (x > 99999)
{
alert("Please input a valid Runner ID between 1 to 99999 !")
testresult=false
}
/*is it below 1*/
else if (x < 1)
{
alert("Please input a valid Runner ID between 1 to 99999 !")
testresult=false
}
return (testresult)
}
</script>
</head>
<body>
<form name="checknum" onSubmit="return checknumber()">
Please input a valid Runner ID between 1 to 99999:
<input type="text" name="pnum" onchange="checknumber()">
<input type="submit" value="Submit">
</form>
</body>
</html>

非常感谢Damien

导入Jquery库并使用此函数

<script type="text/javascript">
$(document).ready(function(){    
$("#pnum").keypress(function (e)  
{ 
  //if the letter is not digit then display error and don't type anything
  if( e.which!=8 && e.which!=0 && (e.which<48 || e.which>57))
  {
    return false;
  } 
});
});

但是文本框的id

 <input type="text" name="pnum" id="pnum" maxLength="5" > 

这将确保您只能添加数字和5个字符的