jquery validate 插件:(2)简单示例

 

最简单的例子,比如我们有一个表单:
<form action="" method="get" id="frm">
    <table>
        <tr>
            <td>用户名</td>
            <td><input type="text" name="username" id="username" /><em>*</em></td>
        <tr>
        <tr>
            <td>电子邮件</td>
            <td><input type="text" name="email" id="email" /><em>*</em></td>
        </tr>
        <tr>
            <td colspan="2"><input type="submit" value="Go!" /></td>
        </tr>
    </table>
</form>
    这个表单中,有用户名和电子邮件两个字段。他们都为非空, 并且电子邮件需要是格式正确的地址。使用validation最简单的方式,是引入jquery和jquery validation的js文件。然后分别给两个input加入class:
    <input type="text" name="username" id="username" class="required"/>
     和
    <input type="text" name="email" id="email" class="required email" />
     然后,在document的read事件中,加入如下方法:
     <script>
        $(document).ready(function(){
                $("#frm").validate();
        }
     </script>
邮箱Email,如上:class="required email"
字符chars,默认3-18个字符,如上:class="required chars"
电话号码,默认数字8-11位,如上:class="required phone"
文本区域textarea,如上:class="required"
   
这样, 当form被提交的时候,就会根据input指定的class来进行验证了。如果失败,form的提交就会被阻止。并且,将提示信息显示在input的后面。
    不过,这样感觉不太爽,因为验证规则侵入了我们的html代码。还有一个方式,便是使用“rules”。我们将input的那些验证用class删除掉。然后修改document的ready事件响应代码:
    $(document).ready(function(){
        $("#frm").validate({
            rules:{
                username:"required",

                 email:{
                    required:true,
                    email:true
                    }
            }
          });
    });

   
这样以来,也能达到相同的效果。
    那么,接下的问题,就是显示的错误提示是默认的。我们需要使用自定义的提示:
    $(document).ready(function(){
        $("#frm").validate({
            rules:{
                username:"required",
                email:{
                    required:true,
                    email:true
                    }
            },
            messages:{
                username:"请输入您的用户名",
                email:{
                    required:"请输入您的电子邮件地址",
                    email:"清输入一个格式正确的电子邮件地址"
                }
            }
          });
    });

    如果,我们希望将错误信息装入input后面的em标签中呢?我们只需要在validate的options参数中加入errorPlacement项:
    $(document).ready(function(){
        $("#frm").validate({
            rules:{
                username:"required",
                email:{
                    required:true,
                    email:true
                    }
            },
            messages:{
                username:function(){},
                email:{
                    required:"请输入您的电子邮件地址",

                    email:"清输入一个格式正确的电子邮件地址"
                }
            },
            errorPlacement:function(error, element){
                error.appendTo(element.next("em"));
            }
          });
    });

    现在,我们给username加上一个最短和最长的限制:
    $(document).ready(function(){
        $("#frm").validate({
            rules:{
                username:{
                    required:true,
                    minlength:3,
                    maxlength:15
                },
                email:{
                    required:true,
                    email:true
                    }
            },
            messages:{
                username:{
                    required:"请输入您的用户名",
                    minlength:jQuery.format("用户名不能少于 {0} 个字符"),
                    maxlength:jQuery.format("用户名长度不能超过 {0} 个字符")
                },
                email:{
                    required:"请输入您的电子邮件地址",
                    email:"清输入一个格式正确的电子邮件地址"
                }
            },
            errorPlacement:function(error, element){
                error.appendTo(element.next("em"));
            }
          });
    });


另外还有一种简单的验证方式

1.除引用jquery.js、jquery.validate.js外,再添加引用jquery.metadata.js

<script language="javascript" type="text/javascript" src="js/jquery.metadata.js"></script>

2.在控件上通过class{}添加验证规则

<input type="text" name="username" id="username" class="{required:true,messages:{required:'请输入用户名'}}" />

<input type="text" name="email" id="email" class="{required:true,email:true,messages:{required:'请输入电子邮件',email:'电子邮件格式有误!'}}" />

3.同样在document的read事件中,加入如下方法:
<script>

    $(document).ready(function(){

        $("#frm").validate();

    }
</script>

posted on 2009-12-09 11:26  凡夫·俗子  阅读(2366)  评论(0编辑  收藏  举报