这有效:
$("[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");
}
}
);
当我通过validate函数进行样式设置时,将应用样式设置,因此它可以工作:
$('#aspnetForm').validate({
errorElement: "span",
errorPlacement: function(error, element) {
error.insertAfter(element);
error.css("margin", "0 0 0 5px");
}
});
为什么不能在规则添加功能中使用错误放置样式?
最佳答案
在第一种方法中,您要将对象上的errorPlacement
属性/函数传递给rules方法...它根本不在乎对此进行检查并且不使用它。对于您传入javascript的任何对象,它都必须检查该属性或以某种方式使用它,否则,它只是无关的信息。您也可以将myExtrathing:'ValueHere'
添加到对象中,不会破坏任何内容...但是也不会使用。
默认选项中的.validate()
method has an existing errorPlacement
function(正在积极使用,这是重要的部分,它正在寻找它),并且performs an extend将默认方法替换为您提供的方法...如果您提供的话。对于几乎每个jQuery插件和您指定的任何选项,这种行为都是正确的,它将默认选项与您提供/覆盖的默认选项合并。您可以看到此行为in the jQuery plugin authoring manual的一些简单示例。