Work on date binding
by pltaylor3
HTML
<script src="http://github.com/downloads/SteveSanderson/knockout/knockout-1.2.0.js"></script>
<p>Enter a Date value: <input data-bind="date: someValue" /></p>
<p>Resultant value: <divt data-bind="text: someValue" /></p>
Should read 5/4/2012 at load
JavaScript
ko.bindingHandlers.date = {
init: function (element, valueAccessor) {
var jsonDate = valueAccessor();
var value = new Date(parseInt(jsonDate().substr(6)));
var ret = value.getMonth() + 1 + "/" + value.getDate() + "/" + value.getFullYear();
$(element).val(ret);
},
update: function(element, valueAccessor) {//parse date
var date = $(element).val();
var firstIndex = date.indexOf('/');
var month = date.substring(0, firstIndex);
var jsonDate = valueAccessor();
var value = new Date(parseInt(jsonDate().substr(6)));
value.setMonth(month);
var jsonValue = value.valueOf();
var output = '/Date(' + jsonValue + ')/';
jsonDate(output);
}
};
var viewModel = {
someValue : ko.observable("/Date(1336151100000)/")
};
ko.applyBindings(viewModel);