2
當我通過調用$ .validator setDefaults方法爲jQuery Validation插件設置了一些默認值時,errorPlacement方法運行正常,但invalidHandler函數完全被忽略了。爲什麼?
請注意,我在此實例中使用jQuery UI選項卡並使用.valid()調用驗證選項卡的各個字段(在窗體中),而不是完整的窗體.validate()調用。
任何有識之士非常感謝。
下面簡化代碼:
(function($) {
//det up some site wide validator defaults
$.validator.setDefaults({
invalidHandler: function(error, validator) {
console.log("InvalidHandler Test");
},
errorPlacement: function(error, element) {
error.appendTo("#error_validation span#errorSummary");
$("#error_validation").show();
}
});
//small jQuery plugin for error handling in a jQuery UI tab
//by http://bit.ly/bhH1n1
$.fn.validateTab = function() {
var isValid = true;
$(this).find("input, select").each(function() {
if (isValid) {
isValid = $(this).valid();
} else {
$(this).valid();
}
});
return false;
};
$('#tabs').tabs();
$('#addUserBtn').click(function (e) {
e.preventDefault();
$("#addUser").validateTab();
});
});
似乎無法找到你的問題,但你可能想[嘗試這個插件](http://elclanrs.github.com/jq-idealforms/)作爲替代。 – elclanrs 2012-07-23 12:57:31
一個簡單的測試顯示這個工作:http://jsfiddle.net/kzDnx/2/。你注意到你在做什麼有什麼不同嗎?另外,我注意到你永遠不會執行你正在創建的匿名函數。這是複製粘貼錯誤還是你的代碼實際上在做什麼? – 2012-07-23 21:20:07
嗨安德魯,謝謝你!額頭拍打瞬間。令人難以置信的簡單混淆匿名函數和簡寫jQuery文檔就緒函數。只要指出我在這裏使用有效()的調用,但你確實是正確的。我已經重構了你的代碼來證明它:http://jsfiddle.net/awhenderson/xUYFt/5/。再次感謝 – alfonsogrondo 2012-07-25 10:25:14