Knockout validation and error handling module.
npm install --save knockout-validation
In your JavaScript code
require(['knockout', 'knockout-validation'], function (ko, koValidation) {
var ob = ko.observable().extend({
validate: [
// a list of validators
koValidation.string(),
]
});
ob('foo'); // this will success
ob(123); // this will fail
});
var ko = require('knockout');
var koValidation = require('knockout-validation');
var ob = ko.observable().extend({
validate: [
// a list of validators
koValidation.string(),
]
});
ob('foo'); // this will success
ob(123); // this will fail
koValidation.string()
Create a string validator verifies if the observable has a string value.
koValidation.string.size(length)
Create a string validator with limited length.
koValidation.string.xss()
Create a string validator with XSS (cross site scripting) check.
koValidation.number()
Create a number validator verifies if the observable has a number value.
koValidation.number.size(integerLength, decimalLength)
Create a number validator with limited integer part length and decimal part length.
koValidation.number.range(min, max)
Create a number validator with a range.
koValidation.enum(values, nullable)
Create an enum validator validates if the observable has a value in the given value set.
koValidation.array()
Create an array validator validates if the observable has an array value.
koValidation.array.size(min, max)
Create an array validator with size validation.
koValidation.array.item(validators)
Create an array validator with validators for every item.
validators
, array of validators, every validator should be passed by every item.koValidation.array.items(validators, additionalValidators)
Create an array validator with validators which should be all passed one by one by every item.
validators
, array of validators array, every validators array should be
passed by item with same index.additionalValidators
, boolean or array of validators. true means allow
additional items for which there're no validation; false means no additional items
are allowed; array of validators means every additional items should pass all
these validators.koValidation.array.unique()
Create an array validator with no duplicate item validation.
koValidation.required(allowSpace)
Create a validator verifies if the observable has a value. If allowSpace
is
false, space only strings are treated as invalid.
koValidation.passive()
Create a validator which sets observable's errors passively.
Set passive error to the observable. Error will be cleared when value changes.
message
, the passive error messagevalue
, associated value, if the observable is set to any other value, the error
will be clearedkoValidation.custom(isValid, message, blockInput)
Create a validator using customized validation method.
isValid
, the validation method in form of function (value) { return true; }
message
, the error message for validation failureblockInput
, a boolean decides whether invalid value will be blocked. If it's
true
, setting the observable with an invalid value will turn into a noop.
Otherwise, the observable will be updated with the message
added to the its
errors
propertykoValidation.run(value, validators)
Validate a value against an array of validators manually. Returns the error message of the first failed validator
For each validator, you can call its set
method to config the following
options
blockInput
, whether or not the invalid values are blocked from setting to
the observablemessage
, the error message on validation failureValidate a given value directly. Returns the error message if failed, otherwise
returns undefined
.