jquery validate的文档http://docs.jquery.com/Plugins/Validation/validate#toptions
groups就是把若干的文本框,形成一个组,此组可以有统一的错误提示,组中的元素不论哪个没有通过都会显示错误
success是验证通过后可以执行一些东西,比如显示OK
根据文档中的groups和success提供的示例代码
).validate({
2: groups: {
4: },
function(error, element) {
)
);
else
10: error.insertAfter(element);
11: },
true
13: })
).validate({
function(label) {
)
4: },
) }
6: })
当同时使用这两者的时候,组中的某一个元素验证通过了,就会执行success中的东西,错误提示变成了OK,这显然是不对的。
遗憾的是success中,只提供了label参数,label就是显示错误或正确信息的地方,而没有提供element,无法获得是那个文本框触发了success
临时的解决办法:
jquery.validate.js中(mvc自带),623行
showLabel: function(element, message)
showLabel中调用了success,showLabel在被调用时传入了element
修改651行
: this.settings.success( label );
改为
: this.settings.success( label,element);
这样可以在自己设置的success中通过element获取是那个文本框触发了success,然后判断是否在组中,组中其他元素是否有错误等等
希望validate能够有更好的改进