jQuery验证errorPlacement

时间:2010-04-23 14:03:36

标签: jquery validation

这有效:

$("[id$='_zzz']").rules(
    "add",
    {
        required: true,
        minlength: 8,
        messages: {
            required: "...",
            minlength: jQuery.format("...")
        }            
    }
);

出现错误消息。

当我尝试设置邮件样式时,这不起作用:

$("[id$='_zzz']").rules(
    "add",
    {
        required: true,
        minlength: 8,
        messages: {
            required: "...",
            minlength: jQuery.format("...")
        },
        errorElement: "span",
        errorPlacement: function(error, element) {
            error.insertAfter(element);
            error.css("margin", "0 0 0 5px");
        }             
    }
);

当我通过验证功能设置样式时,将应用样式以使其起作用:

$('#aspnetForm').validate({
    errorElement: "span",
    errorPlacement: function(error, element) {
        error.insertAfter(element);
        error.css("margin", "0 0 0 5px");
    }
});

为什么我不能在规则添加功能中使用错误放置来设置样式?

1 个答案:

答案 0 :(得分:2)

在第一种方法中,您将对象的errorPlacement属性/函数传递给rules方法......它根本不关心检查这个并且不使用它。对于传递给javascript的任何对象,它必须检查该属性或以某种方式使用它,否则它只是无关的信息。您也可以将myExtrathing:'ValueHere'添加到对象中,不会破坏任何内容......但也不会使用。

默认选项中.validate() method has an existing errorPlacement function(主动使用,这是重要部分,正在寻找)和performs an extend将默认方法替换为默认选项你提供的...如果你提供了一个。对于几乎每个jQuery插件和您指定的任何选项,这种情况都是如此,它将默认选项与您提供/覆盖的选项合并。您可以看到此行为的一些简单示例in the jQuery plugin authoring manual