Reputation: 17101
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
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