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