Bind to float / numbers. ("") is added to json model #2
https://groups.google.com/forum/#!topic/knockoutjs/5WcUS2Od9NM
by rniemeyer
HTML
<script src="http://knockoutjs.com/js/jquery.tmpl.js"></script>
<script src="http://knockoutjs.com/downloads/knockout-2.2.1.js"></script>
<label>Bad: </label>
<input data-bind="value: units" size="3" />
<span data-bind="text: ko.toJSON(units)"></span>
<hr/>
<label>Good: </label>
<input data-bind="value: units2" size="3" />
<span data-bind="text: ko.toJSON(units2)"></span>
<hr/>
JavaScript
ko.numericObservable = function(initialValue) {
var _actual = ko.observable(initialValue);
var result = ko.dependentObservable({
read: function() {
return _actual();
},
write: function(newValue) {
var parsedValue = parseFloat(newValue);
_actual(isNaN(parsedValue ) ? newValue: parsedValue);
}
});
return result;
};
var viewModel = {
units: ko.observable(2.50),
units2: ko.numericObservable(2.50)
};
ko.applyBindings(viewModel);