Javascript验证onkeypress功能

时间:2014-08-08 10:14:32

标签: javascript

在网络表单中,我有多个字段,每个字段都有一些独特的验证,如电话和邮政编码只有数字,有些字段不允许使用特殊字符。那么如何验证每个字段?

现在我验证了

function isNumberKey(evt)
      {
         var charCode = (evt.which) ? evt.which : event.keyCode
        if (charCode > 32 && (charCode < 48 || charCode > 57)||(charCode==32))

        return false;

        return true;
      } 

function isAlphaNumericKey(evt)
    {
    var charCode = (evt.which) ? evt.which : event.keyCode
    if (charCode > 32 && (charCode < 65 || charCode > 90) && (charCode < 97 || charCode > 122)&& (charCode < 48 || charCode > 57))
    return false;
    return true;
    }  

在某些情况下,我需要允许一些特殊字符,如

function isANhypenKey(evt)
    {
    var charCode = (evt.which) ? evt.which : event.keyCode
    if (charCode > 32 && (charCode < 65 || charCode > 90) && (charCode < 97 || charCode > 122)&& (charCode < 48 || charCode > 57) && (charCode!=44) && (charCode!=45))
    return false;
    return true;
    }  

和HTML表单

<input type="text"  name="zipcode" id="zipcode" onkeypress="return isNumberKey(event);"/>
<input type="text"  name="shipname"  id="shipname"  onkeypress="return isANhypenKey(event);"  />

如何减少我的JS代码。我可以获得任何JS库文件或JS函数可以解决这个问题吗?感谢

4 个答案:

答案 0 :(得分:2)

您可以使用几个库。如果你想坚持使用没有任何jQuery的纯JavaScript,那么你最好的选择可能是Validate JS

如果你愿意使用jQuery,有很多jQuery选项 - 这些通常更具功能性,也更好看。 您还可以使用Foundation Framework中内置的Validator - 它被称为Abide,但它使用jQuery。

希望这有帮助。

答案 1 :(得分:0)

http://rickharrison.github.io/validate.js/ 最好,最简单易用  检查该链接

答案 2 :(得分:0)

您可以查看jQuery validation plugin - 它非常有用,您也可以轻松地向表单添加验证错误,以便用户知道输入的错误。

通过这种方式,您将避免大量手动JS验证代码。

答案 3 :(得分:0)

这可能是您正在寻找的答案,也可能不是,但也许您应该寻找一个解决方案 这需要更少的JavaScript:

在HTML 5中,您可以使用模式指定输入应接受的值的类型,您可以在此mozilla page上阅读此内容或阅读此问题的答案:{{3} }。

<input type="text" name="country_code" pattern="put a regex here that describes only valid input for your situations" title="Three letter country code">

请注意,并非所有浏览器(主要是Safari和旧版IE)目前都支持模式属性。

另一点值得注意的是,如果首选解决方案,最好在JavaScript代码中使用RegEx。