У вас нет сообщений об ошибках, потому что вы удалили их из функции errorPlacement
.
errorPlacement: function (error, element) {
if ($(element).is('select')) {
$(element).parent('div').addClass('dropdown-has-error');
} else if ($(element).attr('name') === 'userIs') {
$(element).siblings('label.select-role').addClass('radio-has-error');
} else {
element.attr('placeholder', error.text());
}
},
Любой select
попадет в первое условное выражение, которое только добавляет класс.
if ($(element).is('select')) {
$(element).parent('div').addClass('dropdown-has-error');
Функция errorPlacement
по умолчанию содержит что-то вроде следующего, которое вы нигде не включили ...
error.insertAfter(element);
У вас есть element.attr('placeholder', error.text())
, который будет просто измените атрибут placeholder
в сообщении об ошибке, но только тогда, когда другие условия не работают. Я не думаю, что использование placeholder
для сообщений об ошибках является правильным GUI, поскольку это не то, чем должен быть placeholder
... и, AFAIK, нет placeholder
в элементах select
.
Итак, если вам не хватает сообщений, это потому, что вы перезаписали значение по умолчанию errorPlacement
, не вставляя объект error
где-либо в свою DOM.
При этом вы не должны использовать errorPlacement
для добавления классов. Вы должны использовать его только для размещения сообщения в вашем макете. После размещения плагин переключает сообщение. Если вы добавляете здесь классы, вам нужно как-то их удалить, что вы делаете с обратным вызовом success
. Однако все это просто не совсем правильно.
errorPlacement
для размещения сообщения в макете.
success
предназначен для использования самого сообщения, когда элемент действителен, например, для установки зеленой галочки.
Если вы хотите добавить и удалить классы, затем используйте функции обратного вызова highlight
и unhighlight
, поскольку это именно то, для чего они здесь нужны.