我似乎无法弄清楚如何将输入字段的内容添加到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`);
...这有点hacking,并且不起作用(由于事件触发出于某种原因影响value
,例如gmail.co
而不是gmail.com
)。
根据API文档,似乎无法通过旧的设置消息的方式返回函数:
messages: function(value) {
return { en: `${value} is not a valid email domain` }
}
对有效解决方案有何建议?