Can't configure knockout validation

javascript, knockout-validation, knockout.js

Solution

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?

- any call to `ko.applyBindings` or `ko.applyBindingsWithValidation`

- any call to `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.

Problem

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.

Original source