I'm trying to configure knockout validation, but my settings seem to be getting ignored. This is how I'm trying to configure it
var knockoutValidationSettings = {
insertMessages: true,
decorateElement: true,
errorMessageClass: 'error',
errorElementClass: 'error',
errorClass: 'error',
errorsAsTitle: true,
parseInputAttributes: false,
messagesOnModified: true,
decorateElementOnModified: true,
decorateInputElement: true
};
ko.validation.init(knockoutValidationSettings);
ko.applyBindings(vm, $('#dropzone')[0]);
I know the options object isn't the problem because this works perfectly
var knockoutValidationSettings = {
insertMessages: true,
decorateElement: true,
errorMessageClass: 'error',
errorElementClass: 'error',
errorClass: 'error',
errorsAsTitle: true,
parseInputAttributes: false,
messagesOnModified: true,
decorateElementOnModified: true,
decorateInputElement: true
};
//ko.validation.init(knockoutValidationSettings);
ko.applyBindingsWithValidation(vm, $('#dropzone')[0], knockoutValidationSettings);
How can I get the init function to work? Obviously I'd like to move this initialization to a single place at the root of my application.
It seems that the validation plugin has been already initialized by the time you call ko.validation.init.
So you need to pass in true as the second argument to force the initialization to use the new configuration:
ko.validation.init(knockoutValidationSettings, true);
What can initialize the validation plugin?
ko.applyBindings or ko.applyBindingsWithValidation
ko.validation.init or ko.validation.configure
The ko.applyBindingsWithValidation version works because it updates the configuration - under the covers - even if the plugin has been already initialized.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With