Parsley 自定义动态错误信息

Parsley custom dynamic error message

欧芹 (2.8) 我有一个自定义验证器

window.Parsley.addValidator('password', {
    validateString: function(value, req, elem) {
        var error = validatePassword(value);
        return error === '';
    },
    messages: {
        en: 'Want my custom message based on input value'
    }
});

validatePassword(value) return 根据值的错误消息,例如缺少特殊字符。那么我如何访问错误消息中的值或输入元素。

目前 return "dynamic" 错误消息的方法是 return 从您的 validateString 方法中获取失败的承诺。 This example 使用此技术。

经过一番挣扎,我找到了解决办法。我们不能用参数指定回调来创建动态错误消息,但我们可以在验证回调中添加错误消息,我们也可以在其中访问输入值和元素。

window.Parsley.addMessage(lenguage, validatorName, customErrorMessage)

window.Parsley.addMessage('en', 'password', 'Missing special character')

window.Parsley.addValidator('password', {
    validateString: function(value, req, elem) {
        // We can add dynamic error message here.
        // window.Parsley.addMessage(lenguage, validatorName, customErrorMessage);
        var error = validatePassword(value); // validatePassword() returns error message if there are any validation errors otherwise empty string.
        window.Parsley.addMessage('en', 'password',error);
        return error === '';
    }
});