Кодер, спасибо за ответ, который вы опубликовали, код showErrors, который вы опубликовали, мне очень помог. Тем не менее, я не смог заставить его работать на меня, если для onfocusout установлено значение true. Мне пришлось немного изменить ваш код, и, надеюсь, это поможет всем, кто имеет дело с этой же проблемой.
showErrors: function(errorMap, errorList) {
var i = 0;
var labelText = new Array(this.numberOfInvalids());
$.each(errorMap, function(name, value) {
//I had to change the following line to get the for attribute of the
//label that matches the id of the name
var label = $("label[for='" + $('#' + name).attr('id') + "']").text();
labelText[i] = label;
i++;
});
i = 0;
$.each(errorList, function(name, value) {
//This is where I ran into issues. With the code you had earlier, the labelText kept
//getting appended every time I would change focus from an input. To get rid of that
//I had to run a couple of checks
var semi = labelText[i].indexOf(':');
var requiredString = 'This field is required';
var check = labelText[i].indexOf(requiredString);
if (check != -1) {
if (semi != -1 && labelText[i].indexOf(':', semi + 1) != -1) {
var indexOfSemi = labelText[i].indexOf(':');
labelText[i] = labelText[i].substr(0, indexOfSemi); console.log(labelText[i]);
this.message = hold + ": " + this.message;
}
} else {
this.message = labelText[i] + " " + this.message;d
i++;
}
});
this.defaultShowErrors();
},
Просто хотел сказать спасибо, и, надеюсь, это поможет кому-то еще.