【问题标题】:Specific number validation?具体号码验证?
【发布时间】:2017-09-25 22:03:09
【问题描述】:

是否可以使用 javascript 将字段验证为一组特定的数字?例如,在邮政编码字段中,您只能输入四个要被接受的数字,例如2747,2750, 2753, 2760, 2777。任何其他数字都将返回为假。我已经做了一些搜索,但我似乎找不到任何用于这种特定情况的东西,而且我对 javascript 非常了解,所以任何形式的帮助都会很棒。

【问题讨论】:

  • 是的,有可能。到目前为止,您尝试过什么?
  • @Josh 我还没有尝试过任何东西,我找不到任何关于这种特定情况的有用信息,我可以如何做到这一点,是否有一个页面可以找到对你有帮助的东西知道了吗?

标签: javascript validation numbers set


【解决方案1】:

应该很简单:

Live DEMO

  1. 创建您的号码列表
  2. 创建一个Object,将每个数字作为键,将任何内容作为属性。
  3. 如果它们来自服务器,则将它们发送并解析为 JSON。// 跳过
  4. 在 JS 中,var validNumbers = JSON.parse(serverResponse); // 跳过
  5. 使用Object,而不是ArrayArray.prototype.indexOf 速度较慢,需要 polyfill。
  6. 对象属性访问是 O(1) 并且得到普遍支持。
  7. 您的对象如下所示:var validNumbers = {"2747": "2747", etc..}
  8. 从用户那里获取输入。
  9. if (typeof validNumbers[userInput] !== undefined) {//valid} else {//invalid}

【讨论】:

  • 所以我需要一个数据库吗?有没有办法使用某种形式的数组?
  • 只需要对您展示给我的代码提供更多帮助,当我将它输入到我的页面时,它似乎根本不起作用,我不需要调用该函数是吗?
  • 太棒了,修复了它!还有一件事我可以更改警报消息吗?我只是在警报行中输入我自己的消息吗?
  • 非常感谢,你真的很有帮助!
【解决方案2】:

试试这个。

<html>
<head>
<script>
function validateForm() {
    var x = document.getElementById("entry_834285895").value;
    if ((x != 3242 )&&(x != 2342 )&&(x != 2343 )&&(x != 1111 )) {
        document.getElementById("um").innerHTML = ('Invalid');
		document.getElementById("um").style.color = 'Red';
    }
	else {
        document.getElementById("um").innerHTML = ('Valid');
		document.getElementById("um").style.color = 'Green';
    }
	
}
</script>
</head>
<body>
<p>Valid numbers:<br> 3242<br>2342<br>2343<br>1111
<form name="myForm" action="" target="hiddenFrame"
onsubmit="return validateForm()" method="post" >
Name: <input id="entry_834285895" type="text" name="fname">
	
<input type="submit" value="Submit">
<div id="um"></div>
</form>
<iframe name="hiddenFrame" style="display:none;"></iframe>
</body>
</html>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-12-20
    • 2011-12-30
    • 2016-04-05
    • 2015-04-23
    • 1970-01-01
    • 2012-10-27
    • 1970-01-01
    相关资源
    最近更新 更多