jquery.validate分组验证

在很多时候,我们都不是一步就将所有信息填写完整,然后提交。而是分步进行填写表单,如下所示:

第一步填写基本信息,

第二步填写教育信息

要求我们每一步操作都要进行验证,这样我们可以用以下方式进行验证:

    <script type="text/javascript" language="javascript" src="http://www.cnblogs.com/Scripts/jquery-1.4.1.min.js"></script>
    <script type="text/javascript" language="javascript" src="http://www.cnblogs.com/Scripts/jquery.validate.min.js"></script>
    <h2>
        ValidateStep</h2>
    <form action="" id="registerForm" method="post">
    <div class="step1 validationGroup" style="display: block;">
        <p>
            基本情况</p>
        <table border="0" cellpadding="0" cellspacing="0">
            <tr>
                <td>
                    姓名:<input type="text" id="name" class="required" />
                </td>
            </tr>
            <tr>
                <td>
                    年龄:<input type="text" id="age" class="required number" />
                </td>
            </tr>
            <tr>
                <td>
                    <input type="button" class="next" value="下一步" />
                </td>
            </tr>
        </table>
    </div>
    <div class="step2 validationGroup" style="display: none">
        <p>
            教育背景</p>
        <table border="0" cellpadding="0" cellspacing="0">
            <tr>
                <td>
                    毕业学校:<input type="text" id="school" class="required" />
                </td>
            </tr>
            <tr>
                <td>
                    专业:<input type="text" id="major" class="required" />
                </td>
            </tr>
            <tr>
                <td>
                    <input type="submit" value="提交" />
                </td>
            </tr>
        </table>
    </div>
    </form>
    <script language="javascript" type="text/javascript">
        function InitValidationGroup() {
            $('.validationGroup .next').click(function (evt) {
                if (IsValidated($(this).closest(".validationGroup"))) {
                    $(".step1").hide();
                    $(".step2").show();
                }
                else {
                    evt.preventDefault();
                }
            });

            $('.step1 :text').keydown(function (evt) {
                if (evt.keyCode == 13) {
                    var $nextInput = $(this).nextAll(':input:first');
                    if ($nextInput.is(':submit')) {
                        Validate(evt);
                    }
                    else {
                        evt.preventDefault();
                        $nextInput.focus();
                    }
                }
            });
        }
        function IsValidated(group) {
            var isValid = true;
            group.find(':input').each(function (i, item) {
                if (!$(item).valid())
                    isValid = false;
            });

            return isValid;
        }

        $(document).ready(function () {
            InitValidationGroup();
            var validator = $("#registerForm").validate();
        });    
    </script>

这里的思路,主要用了Jquery validate里的valid()和isValid方法,很简单吧。

posted @ 2011-03-13 21:58  Wang Juqiang  阅读(6639)  评论(0编辑  收藏  举报