Alex KeySmith
Alex KeySmith

Reputation: 17101

How to add a custom message to a pattern validation in ko validation

Let's say I have:

self.UserName = ko.observable("").extend({ required: true }).extend({ pattern: '[\S]' });

I'm trying to do something like (I've tried a few variations):

self.UserName = ko.observable("").extend({ required: true }).extend({ pattern: '[\S]', message : 'cannot contain spaces' });

But no luck.

I can see validation bindings mentions validation messages, but it appears to be for a single message for all validation.

And custom validation rules seems over kill, as all I want is a pattern but with a different message.

Am I missing something obvious?

Upvotes: 8

Views: 6434

Answers (1)

nemesv
nemesv

Reputation: 139758

Your syntax is wrong. You need to assign an object to the pattern property which contains the message and the params

So the correct usage is:

self.UserName = ko.observable("")
    .extend({ required: true })
    .extend({ pattern: {
         message: 'cannot contain spaces',
         params: '[\S]'
}});

Se also the Getting Started example.

Upvotes: 12

Related Questions