如何将变量添加到自定义Parsely错误消息?

时间:2018-10-12 23:39:44

标签: javascript forms validation parsley.js

我似乎无法弄清楚如何将输入字段的内容添加到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` }
        }

对有效解决方案有何建议?

1 个答案:

答案 0 :(得分:0)

您可以通过从validateString方法返回失败的诺言来返回“动态”错误消息。 This example使用了这种技术。