Computed observable is not suitable for your example, since a computed observable is a function that should depend on one or more other observables.
You can instead use extenders to achieve this. Here's a fiddle with a demo.
ko.extenders.maxNumber = function(target, option) {
var result = ko.computed({
read: target,
write: function(value){
var newval = parseFloat(value, 10);
if (newval < option) {
target(newval);
} else {
alert('Number is to big');
}
}
});
result(target());
return result;
};
function Model() {
var a = 100;
this.a = ko.observable(a).extend({ maxNumber: 1000 });
}