Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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?

like image 393
Alex KeySmith Avatar asked Mar 27 '13 11:03

Alex KeySmith


1 Answers

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.

like image 67
nemesv Avatar answered Dec 06 '22 19:12

nemesv