Я не могу понять, как добавить содержимое поля ввода в сообщение об ошибке для 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` }
}
Есть предложения по эффективному решению?