jquery表单验证不起作用 - zip和email

时间:2011-12-11 05:34:57

标签: jquery jquery-validate

我有这个jquery代码:

<script src="../js/jquery-1.6.1.min.js" type="text/javascript"></script>
<script src="../js/jquery.validate.js" type="text/javascript"></script>
<script type="text/javascript">

jQuery(function(){
    jQuery("#zip").validate({
        expression: "if (VAL.match(/^[0-9]{5}$//)) return true; else return false;",
        message: "invalid zip code"
    });
    jQuery("#email").validate({
        expression: "if (VAL.match(/^[^\\W][a-zA-Z0-9\\_\\-\\.]+… return true; else return false;",
        message: "invalid email"
    });
});    
</script>

<form action="save.php">
    <input type="text" name="email" id="email" />
    <input type="text" name="zip" id="zip" />
    <input type="submit" name="go" id="go"  value ="go" />
</form>

但是当我点击提交按钮时它不会验证zip和电子邮件,它会提交表单。我的“表达”是错的吗?

由于

1 个答案:

答案 0 :(得分:7)

对此表单的反馈

这个五字符,仅限数字的邮政编码概念只能处理美国人。

其他国家/地区的邮政编码更复杂,需要的数字更少或更多,或者使用非数字字符。例如,Canada supports alphanumeric postal codes

如果您确定希望本网站仅适用于美国人,那么请不要担心。否则,我建议让该字段更灵活。

代码问题

如果你使用内置的验证规则,我认为对于像这样的简单表单你会不那么头疼。它可以非常容易地处理这两个领域。

看到这个小提琴:http://jsfiddle.net/tzMTs/

来源:

<script src="../js/jquery-1.6.1.min.js" type="text/javascript"></script>
<script src="../js/jquery.validate.js" type="text/javascript"></script>
<script type="text/javascript">
    $("#somethingForm").validate();
</script>

<form id="somethingForm" action="save.php">
    <span>E-Mail</span>
    <input type="text" name="email" id="email" class="required email" />
    <br>
    <span>Zip Code</span>
    <input type="text" name="zip" id="zip"
        class="required digits" minlength="5" maxLength="5" />
    <input type="submit" name="go" id="go"  value ="go" />
</form>

Screenshot of form validation for e-mail and simple zip code