$.validator setDefaults メソッドを呼び出して jQuery Validation プラグインのデフォルトを設定すると、errorPlacement メソッドは正常に実行されますが、invalidHandler 関数は完全に無視されますか?? なんで?
このインスタンスでは jQuery UI タブを使用しており、完全なフォーム .validate() 呼び出しではなく、.valid() 呼び出しで (フォーム内の) タブの個々のフィールドを検証していることに注意してください。
どんな洞察も大歓迎です。
以下の簡略化されたコード:
(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();
});
});