parsley.js, как вызвать ошибку в поле с пользовательским сообщением об ошибке
Было бы здорово, если бы можно было сделать такую вещь, как
$('input.specific-field').parsley('error', 'this is a custom error message');
... но я думаю, что это невозможно?
Как я мог достичь такой вещи?
5 ответов
У Parsley есть несколько встроенных способов добавления пользовательских сообщений об ошибках.
var specificField = $('input.specific-field').parsley();
# add the error
window.ParsleyUI.addError(specificField, "myCustomError", 'this is a custom error message');
# remove the error
window.ParsleyUI.removeError(specificField, "myCustomError");
Более подробная информация здесь: http://parsleyjs.org/doc/index.html
РЕДАКТИРОВАТЬ: Этот метод теперь устарел (спасибо @giraff).
Вот как я получил это работает для Parsley 2.8:
field.parsley().removeError('customValidationId');
field.parsley().addError('customValidationId', {message: "myCustomError"});
http://parsleyjs.org/doc/index.html
Вот готовое решение, которое я использовал для отображения ошибки из AJAX для полей, идентифицированных по их идентификатору:
// Removing errors from previous AJAX call
if ($('.js_error').length) {
$('.js_error').parsley().removeError('myError');
$('.js_error').removeClass('.js_error');
}
// Showing errors from current AJAX call
for (var idField in ajaxErrors) {
var msg = ajaxErrors[idField];
var field = $('#field_' + idField);
if (field.length) {
field.addClass('js_error');
field.parsley().removeError('myError');
field.parsley().addError('myError', {message: msg});
}
}
Однако это решение не предотвратит отправку формы (поскольку в пользовательском интерфейсе отображаются только сообщения об ошибках, логика проверки формы не затрагивается). Вот почему Parsley.js предпочитает специальные валидаторы.
data-parsley-error-message="my message"
работал для меня см. http://parsleyjs.org/doc/index.html для получения дополнительной информации.
Может быть, это:
$('input.specific-field').parsley().UI.manageError({error: 'this is a custom error message'});
Приведенные выше примеры, по-видимому, относятся к Parsley 2.0. Я застрял в более старой версии, но получил пользовательские ошибки для работы со следующим.
el = $('#my_input').parsley();
el.manageErrorContainer(); // set up the error list container
$(el.ulError).empty() // clear any previous errors if you want..
el.addError({error: 'Hey, mind yerself!'});