JSFiddle - React, Tailwind, and code Playground
HTML
<input data-bind="value: number" />
JavaScript
ko.extenders.number = function (target, opt) {
var result = ko.computed({
read: target,
write: function (value) {
if (value.substr) {
value = parseFloat(value);
if(isNaN(value) || value < 0)
value = 0;
}
target(value);
target.valueHasMutated();
}
});
return result;
};
ViewModel = function() {
this.number = ko.observable(5).extend({ number: true });
}
ko.applyBindings(new ViewModel());