Я использую для своей формы плагин jQuery Validation . Это позволяет вам изменить errorElement и обернуть errorElement, используя опцию wrapper . Но я хочу вставить элемент в errorElement следующим образом:
<label class="error"><em></em>Error message goes here</label>
Есть ли простой способ вставить тег em ?
Я попытался добавить тэг em с помощью опции errorPlacement (см. Ниже), но, похоже, плагин заменяет содержимое errorElement после этого.
$.validator.setDefaults({
errorPlacement: function(error, element) {
error.prepend('<em/>');
error.insertBefore(element);
}
});
Я также попытался добавить тег em с помощью опции showErrors (см. Ниже). Опять же, похоже, что плагин заменяет содержимое errorElement впоследствии.
$.validator.setDefaults({
showErrors: function(errorMap, errorList) {
for (var i = 0; i < errorList.length; i++) {
var error = errorList[i],
$label = this.errorsFor(error.element),
$element = $(error.element);
if ($label.length && $label.find('em').length == 0) {
$label.prepend('<em/>');
}
}
this.defaultShowErrors();
}
});
Я также попытался изменить плагин, чтобы при создании элемента error добавлялся тег . Это работает до тех пор, пока я не сконцентрируюсь на элементе формы с ошибкой, после чего тег em будет удален. (Это происходит потому, что проверка jQuery постоянно обновляет содержимое элемента error, когда я фокусируюсь и / или печатаю в поле, поэтому при создании элемента error добавляется мой тег em .)