2011-05-05 88 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約定整合..它工作得很好。