У меня есть проект, который написан с c#
в верхней части ASP.NET MVC5. Я использую css-bootstrap 3 top design моего сайта. Я также использую jQuery-Validation вместе с jquery-validation-unobtrusive для обработки проверки на стороне клиента.
По какой-то причине jQuery-Validation
вставляет элемент span
под вход, даже если ошибки нет. Это приводит к появлению дополнительного пространства под входом, который не нужен.
Как я могу помешать пакету jQuery-Validation
вставить контейнер с ошибкой, если ошибки нет?
Вот порядок, в котором я включаю эти пакеты в свой html-макет
jquery.validate.min.js
это пакет проверки jquery
jquery.validate.setup.js
это моя собственная конфигурация для пакета проверки jquery
jquery.validate.unobtrusive.js
это пакет jquery.validate.unobtrusive
query.validate.unobtrusive.setup.js
это моя собственная конфигурация для пакета jquery.validate.unobtrusive
Вот содержимое моего jquery.validate.setup.js
файла
$.validator.setDefaults({
ignore: ":hidden:not('.force-validaion'), .ignore",
highlight: function (element, _errorClass, _validClass) {
$(element).closest('.form-group,.form-group-custom.input-group,.input-group-custom').addClass('has-error');
},
unhighlight: function (element, _errorClass, _validClass) {
$(element).closest('.help-block-error-placeholder').removeClass('has-error');
}
});
Вот содержимое моего query.validate.unobtrusive.setup.js
файла
var settings = {
errorElement: "span",
errorClass: "help-block help-block-error-placeholder",
debug: true,
errorPlacement: function (error, element) {
var elm = $(element);
var parent = elm.closest('.input-group,.input-group-custom');
if (parent.length) {
error.insertAfter(parent);
}
else if (elm.prop('type') === 'checkbox' || elm.prop('type') === 'radio') {
error.appendTo(elm.closest(':not(input, label, .checkbox, .radio)').first());
}
else {
error.insertAfter(elm);
}
},
submitHandler: function (form) {
showLoading();
form.submit();
}
};
$.validator.unobtrusive.options = settings;
По какой-то причине после того, как вход теряет фокус, добавляется следующий диапазон, даже если нет ошибки
<span id="INPUT_NAME-error" class="help-block help-block-error-placeholder"></span>
Как я могу предотвратить вставку этого span
элемента, если нет ошибки?