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!'});
Другие вопросы по тегам