Lazaros Lazarou
Lazaros Lazarou

Reputation: 1

Parsley.js Customer Validator Pass Variable to message

window.Parsley.addValidator('passwordValidChars', {
    requirementType: ['integer', 'integer'],
    validateString: function(value, min, max) {
        var invalidChars = [];
        for (var i = 0; i < value.length; i++) {
            if(value.charCodeAt(i) < min || value.charCodeAt(i) > max) {
                invalidChars.push(value.charAt(i));
            }
        }
        return (invalidChars.length === 0)
    },
    messages: {
        en: 'These characters are not allowed %s'
    }
});

I have this custom validator which validates the password entered between specific char codes e.g [33, 126].

If the user entered any invalid characters I collect them to an array invalidChars and then I want to pass the invalidChars array to the error message but how can I do that? The only values I can pass to the message are the min and max.

Upvotes: 0

Views: 347

Answers (1)

Marc-Andr&#233; Lafortune
Marc-Andr&#233; Lafortune

Reputation: 79612

There's no super easy way, but you can return a dynamic error message. It's not well documented, but instead of returning false return $.Deferred().reject('your dynamic error message').

Upvotes: 1

Related Questions