jQuery validate plugin:在页面的某些部分以编程方式验证字段

时间:2011-05-25 04:43:14

标签: jquery validation

我正在尝试使用jQuery验证插件(从此处 - > http://bassistance.de/jquery-plugins/jquery-plugin-validation/)以编程方式验证基于按钮单击的页面某些部分中的字段(不是真正的表单提交直到结束在进入新的部分之前,它将验证整个表格的最后一部分。基本上,当您单击特定部分中的按钮时,该部分中的字段需要进行验证。页面的第一部分验证就好了,但是当我到达第二部分时,它只是直接通过而没有验证。这样做的正确方法是什么?我至少在正确的轨道上吗? 这是我正在谈论的样本。如有必要,我可以添加更多代码。

// Step 1 section validation
var validateStep1 = $("#form1").validate({
    errorClass: "warning",
    onkeyup: false,
    onblur: false,
    onfocusout: true,
    rules: {
        "field1": {
            required: true,
        },
        "field2": {
            required: true,
            minlength: 1
        },
        "field3": {
            required: true,
        }
    }
});

// Step 2 section validation
var validateStep2 = $("#form1").validate({
    errorClass: "warning",
    onkeyup: false,
    onblur: false,
    onfocusout: true,
    rules: {
        "field4": {
            required: true,
        },
        "field5": {
            required: true,

        },
        "field6": {
            required: true,
        }
    }
});

// click events for buttons to proceed
$("#button1").click( function() {
    if (validateStep1.form()) {
        // proceed
    }
});
$("#button2").click( function() {
    if (validateStep2.form()) {
        // proceed
    }
});

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:4)

我猜你不能在同一表格上使用两次不同的'验证'方法。

您可以使用的是规则对象上的“依赖”选项。它允许仅根据“依赖”的结果“应用”规则。

此页面上有一个示例:http://rocketsquared.com/wiki/Plugins/Validation/validate#toptions(转到“规则”文档部分)

$(".selector").validate({
    rules: {
        contact: {
            required: true,
            email: {
                depends: function(element) {
                    return $("#contactform_email:checked")
                }
            }
        }
    }
});

希望这有帮助, d。