2016-09-28 82 views
0

我有这样的片段:jQuery验证 - 动态errorLabelContainer

$('#my-form').validate({ 
     errorLabelContainer: $('#error-div-1'), 
     submitHandler: function (form) { 
     $(form).ajaxSubmit(formOptions); 
     } 
}); 

是否有可能稍后更新errorLabelContainer?例如,从#error-div-1更改为#error-div-2如下面的例子:

$("#toggle-container").click(function() { 
    errorLabelContainer: $('#error-div-2'); 
}); 

回答

0

是否有可能稍后更新errorLabelContainer?

$("#toggle-container").click(function() { errorLabelContainer: $('#error-div-2'); });

没有。不可能将key:value对设置为.validate()方法中的设置对象,该方法位于随机处理函数function内。第二次调用.validate()也无法超越以前的设置。一旦.validate()使用其设置初始化您的form上的插件,则忽略此方法的所有后续调用。开发人员不提供使用新设置动态重新初始化插件的方法。

由于errorLabelContainer只是针对设置型容器为动态消息,比如,labeldivspan,等等,你必须密切重新审视你的整个方法。没有理由把id放在那里。插件的errorPlacement用于告诉它在何处“一般”插入此消息。默认情况下,它们在之后的每个输入元素仅插入

+0

感谢@Sparky的解释。是否有替代方案来实现我想要实现的目标:通过选择“id”或“class”来定义特定的'errorLabelContainer',然后再更改它? –

+0

@NaourassDerouichi,完全不清楚你想通过这么做来达到目的。但是,正是你所问的是不可能的,正如所解释的那样,这不是一个好习惯。 – Sparky