To remove the "initlial" validation message you need to initialize your State
property with an empty string:
self.State = ko.observable("").extend({
required: { message: "You must select a state." }
});
Demo JSFiddle.
You need to do this because when writing ko.observable()
it will be initialized with undefined
however when knockout evaluates the value
binding it sets State
to the currently selected empty option value's which is an empty string.
However undefined
is not equal to the empty string it makes your property "dirty" and it triggers the validation message because the validation plugin thinks that your property has been modified.