我正在尝试使用Jquery .validate插件进行验证。
我不能一起使用errorPlacement和showErrors方法。
的jsfiddle: 工作errorPlacement - http://jsfiddle.net/5RrGa/1861/
工作showErrors - http://jsfiddle.net/5RrGa/1862/
我需要将它们结合起来才能合作。
$("#form").validate({
ignore: [],
errorPlacement: function(error, element) {
// if showErrors exists, this block is skipped.
error.insertAfter(element);
},
showErrors: function(errorMap, errorList){
for (var i = 0; errorList[i]; i++) {
var errorElement = this.errorList[i].element['attributes']['field']['value'];
$('#allErrors').append("<p>" + errorElement + "</p>");
}
},
submitHandler: function(form) {
// Submit the form
form.submit();
},
invalidHandler: function(event, validator) {
// Show message with errors
$('#errordiv').show();
}
});
当我删除showErrors时,errorPlacement工作正常。 如果我尝试使用showErrors,它会跳过errorPlacement。
如果我在errorPlacament之前放置showErrors没有任何变化,errorPlacement仍然无法正常工作。
如何让两种方法一起工作?
答案 0 :(得分:0)
两者都适用于
showErrors: function(errorMap, errorList){
this.defaultShowErrors();
},
答案 1 :(得分:0)
你可以这样做:
$(document).ready(function(){
$("#registerForm").validate({
errorPlacement: function(error, element) {
error.insertAfter(element);
},
showErrors: function(errorMap, errorList){
var $errorDiv = $("#errordiv").empty().show();
this.defaultShowErrors();
var errorsCombined = "";
for(var el in errorMap){
errorsCombined += "<b>"+ el + "</b>" + errorMap[el]+"<br/>";
}
$errorDiv.append(errorsCombined);
},
submitHandler: function(form) {
// Submit the form
form.submit();
},
invalidHandler: function(event, validator) {
}
});
});