【问题标题】:How to add a variable to custom Parsely error message?如何将变量添加到自定义 Parsely 错误消息?
【发布时间】:2018-10-12 23:39:43
【问题描述】:

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

...这是hack-ish,并且不起作用(因为事件触发会影响value 出于某种原因,例如gmail.co 而不是gmail.com)。

根据 API 文档,似乎不可能从旧的设置消息的方式返回函数:

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

关于有效解决方案的任何建议?

【问题讨论】:

标签: javascript forms validation parsley.js


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-03
    • 2017-05-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多