var formatNumber = function (element, valueAccessor, allBindingsAccessor, format) { // Provide a custom text value var value = valueAccessor(), allBindings = allBindingsAccessor(); var numeralFormat = allBindingsAccessor.numeralFormat || format; var strNumber = ko.utils.unwrapObservable(value); if (strNumber) { return numeral(strNumber).format(numeralFormat); } return ''; }; ko.bindingHandlers.numeraltext = { init: function (element, valueAccessor, allBindingsAccessor) { $(element).text(formatNumber(element, valueAccessor, allBindingsAccessor, "(0,0.00)")); }, update: function (element, valueAccessor, allBindingsAccessor) { $(element).text(formatNumber(element, valueAccessor, allBindingsAccessor, "(0,0.00)")); } }; ko.bindingHandlers.numeralvalue = { init: function (element, valueAccessor, allBindingsAccessor) { $(element).val(formatNumber(element, valueAccessor, allBindingsAccessor, "(0,0.00)")); //handle the field changing ko.utils.registerEventHandler(element, "change", function () { var observable = valueAccessor(); observable($(element).val()); }); }, update: function (element, valueAccessor, allBindingsAccessor) { $(element).val(formatNumber(element, valueAccessor, allBindingsAccessor, "(0,0.00)")); } }; ko.bindingHandlers.percenttext = { init: function (element, valueAccessor, allBindingsAccessor) { $(element).text(formatNumber(element, valueAccessor, allBindingsAccessor, "(0.000 %)")); }, update: function (element, valueAccessor, allBindingsAccessor) { $(element).text(formatNumber(element, valueAccessor, allBindingsAccessor, "(0.000 %)")); } }; ko.bindingHandlers.percentvalue = { init: function (element, valueAccessor, allBindingsAccessor) { $(element).val(formatNumber(element, valueAccessor, allBindingsAccessor, "(0.000 %)")); //handle the field changing ko.utils.registerEventHandler(element, "change", function () { var observable = valueAccessor(); observable($(element).val()); }); }, update: function (element, valueAccessor, allBindingsAccessor) { $(element).val(formatNumber(element, valueAccessor, allBindingsAccessor, "(0.000 %)")); } };