带有jQuery验证插件的下一个按钮上的invalidHandler

时间:2012-03-23 13:23:26

标签: javascript jquery jquery-validate

我正在使用jQuery验证插件设置一个表单,我的表单将有几个步骤,所以我在每个步骤和单击NEXT按钮上验证表单。

问题是默认“ invalidHandler ”仅适用于提交,但如果点击自定义事件或任何其他按钮但是提交(在我的情况下是NEXT按钮),如何调用它?

这是我的快速代码示例:

$(function() {
                $("form").validate({
                    invalidHandler : function(form, validator) {

                        var errors = validator.numberOfInvalids();

                        if(errors) {
                            alert(errors);
                            validator.errorList[0].element.focus();
                        }

                    },
                    rules : {
                        name : 'required'
                    }
                });

                $('#next').click(function() {

                    var element = $('form');
                    var stepIsValid = true;
                    $("input.text").each(function(index) {
                        stepIsValid = element.validate().element($(this)) && stepIsValid;
                    });
                    if(!stepIsValid) {
                        return false;
                    }

                });
            });

和带有NEXT按钮的表单:

<form>
            <label for="name">Name:</label>
            <input type="text" id="name" name="name" class="text" />
            <input type="button" value="Next" id="next" />
            <input type="submit" />
        </form>

谢谢。

1 个答案:

答案 0 :(得分:1)

使用.valid()手动检查表单的状态:

$('#next').click(function() {
    var element = $('form');
    if (!element.valid()) {
        return false;
    }
});

More information on valid()