Как добавить переменную в пользовательское сообщение об ошибке Parsely? - PullRequest
0 голосов
/ 13 октября 2018

Я не могу понять, как добавить содержимое поля ввода в сообщение об ошибке для Parsely.Пример:

// Fail particular email domains
    window.Parsley.addValidator('emailDomain',
        function (value) {
            const emailInputDomain = value.match(/@\w+[.]\w+/);
            const emailFormattedDomain = emailInputDomain[0].slice(1);
            const excludedDomains = [
                'gmail.com',
                'yahoo.com',
                'sbcglobal.net',
                'aol.com',
                'hotmail.com',
                'juno.com',
                'godaddy.com',
                'hotmail.com'
            ];
            return !excludedDomains.includes(emailFormattedDomain.toLowerCase());
        }).addMessage('en', 'emailDomain', 'Email domain is not valid');

В Интернете я видел примеры использования "% s", который должен вставлять строку из поля ввода, но это не дало мне значения.

Я также пытался:

document.getElementById('email').setAttribute('data-parsley-email-domain-message', `${value} is not valid`);

... который взломан и не работает (так как запуск события влияет на value по какой-то причине, например gmail.co вместо gmail.com).

Согласно документации API, кажется, что невозможно вернуть функцию из старого способа установки сообщений:

messages: function(value) {
            return { en: `${value} is not a valid email domain` }
        }

Есть предложения по эффективному решению?

1 Ответ

0 голосов
/ 14 октября 2018

Вы можете вернуть «динамическое» сообщение об ошибке, вернув невыполненное обещание из вашего validateString метода. Этот пример использует эту технику.

...