2011-05-05 90 views

回答

1

设置验证时,应该保存验证器对象。你可以用它来验证单个字段。

<script type="text/javascript"> 
var _validator; 
$(function() { 
    _validator = $("#form").validate(); 
}); 
function doSomething() { 
    _validator.element($('#someElement')); 
} 
</script> 
+0

仍然不是我在找的东西(感谢与我思想,虽然!)。在你的解决方案中,我手动需要手动调用验证。在我的场景中,验证已经发生在单个输入上,我需要在发生这种情况时立即捕获单个输入的验证结果。 – 2011-05-06 07:27:37

+0

没有看到更多的代码,我在黑暗中刺伤,但您可能想要添加自定义方法。你可以添加你需要的任何代码... $ .validator.addMethod(“catchMe”,函数(值,元素,arg){/ *现在做些什么* /返回false;},“默认错误信息... “); – ShaneBlake 2011-05-06 14:20:38

3

要知道,如果出现了形式的错误,使用:

if(!$("#form0").valid()){ 
    //There was one or more errors in the form 
} 

要知道,如果一个特定元素有错误,使用:

if(!$("#form0").validate().element($("#text1"))){ 
    //There where some error in #text1 
} 

(请注意,这两种方法也会触发验证)

希望这会有所帮助。欢呼声

+0

我意识到这一点。我试图完成的是赶上一个元素被宣布为无效的时刻。这发生在整个表单被验证之前。 – 2011-05-06 06:47:16

2

我正在使用覆盖突出显示/取消突出显示的组合。现在

//Update the validator's highlight/unhighlight 
$.validator.setDefaults({ 
    ignoreTitle:true 
    ,highlight: function (element) { 
    var el = $(element); 
    //TODO: Handle UI changes, add/remove classes 
    el.trigger("validate.fail"); 
    } 
    ,unhighlight: function (element) { 
    var el = $(element) 
    //TODO: Handle UI changes, add/remove classes 
    el.trigger("validate.success") 
    } 
});

,我可以简单地绑定到validate.fail方法...

$("#myInputElement").bind("validate.fail",function(){ 
    //TODO: Do something with this knowledge. 
});

注:我在过去做这jQuery的自举的UI约定整合..它工作得很好。