javascript - 尝试检查表单中的值是否在设定范围内的数字

标签 javascript forms validation numbers range

尝试编写一个脚本来检查表单中的值是否为 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>

非常感谢 达米安

最佳答案

导入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 个字符

关于javascript - 尝试检查表单中的值是否在设定范围内的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12026647/

相关文章:

javascript - 为自定义wordpress插件加载js和css文件

javascript - 动画在 Chrome 中很流畅,但在 Firefox 中则不然

javascript - 减少功能的问题

php - 使用 "Form Plugin"为 jQuery 上传 Ajax 文件

PHP - 如何在索引页上打印登录表单上的错误?

java - 验证日期+时间选择器

javascript - 调整大小和调用函数

javascript - 输入类型 ="date"占位符 - 移动设备

asp.net - 为什么 ASP.NET 可能将 JavaScript 放在 HTML 注释 block 中,而不是 CDATA?

java - Play 2.3 验证 Json 请求体