1

我正在使用http://bassistance.de/jquery-plugins/jquery-plugin-validation/进行表单验证。

我的表格被分成不同的标签。

最后一个选项卡是我的表单提交按钮所在的位置。现在验证检查似乎工作了,但是,验证总是回到一个缺少完成的字段。

我宁愿在提交按钮上方输出我的错误消息,告诉用户返回有问题的选项卡并完成该字段。

这是我正在使用的代码

var errcontainer = $('.errcontainer');
$("#application-submit").click(function() {
        $("#application-form").validate({
        debug: true,
        rules: {
            student_lastname: "required"
        },
        errorContainer: errcontainer,
        errorLabelContainer: $("ol", errcontainer),
        wrapper: 'li',
        meta: "validate"
    });
});

http://jsfiddle.net/F2HNh/

当我禁用选项卡时会输出错误消息,但是当我启用它们时,我什么也得不到。

有什么建议么?

谢谢。

4

2 回答 2

0

就像任何其他 jQuery 插件一样,您可以在 DOM 就绪时对其进行初始化。无需放入.validate()点击处理程序中。如果您只是希望它在单击提交按钮时测试表单的有效性,默认情况下它已经这样做了。

$(document).ready(function() {
    $("#application-form").validate({
        debug: true, // <-- this will block a real submission
        rules: {
            student_lastname: "required"
        },
        errorContainer: errcontainer, // <-- errcontainer not defined or a valid selector.
        errorLabelContainer: $("ol", errcontainer), // <-- errcontainer not defined or a valid selector.
        wrapper: 'li',
        meta: "validate"  // <-- this is not a documented option
    });
});

我不确定您的意图是什么meta: "validate"……这不是记录在案的选项

此外,您的errorContainer:errorLabelContainer:选项无效。 根据文档和示例errorLabelContainer:“由作为errorContainer选项传递的选择器指定”errcontainer不是有效的选择器,也不是已定义的变量。

与 ,相同errorLabelContainer:$("ol", errcontainer)不是有效的选择器。

正如您定义的那样,这两个选项都会导致插件失败并出现错误:http: //jsfiddle.net/5JRNV/

如果您不想关注第一个无效字段,请使用该focusInvalid: false选项。

$(document).ready(function() {
    $("#application-form").validate({
        focusInvalid: false,
        rules: {
            student_lastname: "required"
        },
        // other options.
    });
});

标准演示:http: //jsfiddle.net/5G5PT/

于 2013-02-26T00:26:48.190 回答
0

尝试使用空数组传入忽略选项

$('form').validate({
 // your other options    
 ignore:[]
});

如果错误消息在您启用选项卡之前显示在您的errorLabelContainer中,但之后没有显示,则可能是因为错误位于隐藏的字段上,默认情况下未验证。

于 2013-02-26T12:54:30.760 回答