/* var currenyFormatter = new Intl.NumberFormat(I18nNumberFormatter_locale.replace('_', '-'), { style: 'currency', currency: I18nNumberFormatter_currency, }); var numberFormatter = new Intl.NumberFormat(I18nNumberFormatter_locale.replace('_', '-'), { style: 'decimal', minimumFractionDigits: 2, maximumFractionDigits: 2 }); class I18nNumberFormatter { static currencyFormatter(number) { return currenyFormatter.format(number); }; static numberFormatter(number) { return numberFormatter.format(number); }; static serverNumberFormatter(number) { // number = number+""; // number = number.replace(',', ''); // number = number.replace('.', ''); // number = parseFloat(parseInt(number))/100.0; // return number; var thousandSeparator = (1111).toLocaleString(I18nNumberFormatter_locale.replace('_', '-')).replace(/1/g, ''); var decimalSeparator = (1.1).toLocaleString(I18nNumberFormatter_locale.replace('_', '-')).replace(/1/g, ''); // var result = number + ""; // result = result.replace(new RegExp('\\' + thousandSeparator, 'g'), ''); number = number + ""; var result = parseFloat(number .replace(new RegExp('\\' + thousandSeparator, 'g'), '') .replace(new RegExp('\\' + decimalSeparator), '.') ); return result; }; }; $(document).ready(function() { (function ($) { var old_val = $.fn.val; $.fn.val = function(value){ if (this.hasClass('number-input')) { if (value===undefined) { if (typeof this.data('original-number') == 'undefined' && this.get(0) !== null) { $(this).data('original-number', I18nNumberFormatter.serverNumberFormatter(this.get(0).value)); } return $(this).data('original-number') + ''; return I18nNumberFormatter.serverNumberFormatter(old_val.apply(this, arguments)); //do something to get the values return old_val.apply(this, arguments); } //setter else { //do something with the value $(this).data('original-number', arguments[0] + ''); arguments[0] = I18nNumberFormatter.numberFormatter(arguments[0]) + ''; return old_val.apply(this, arguments); arguments[0] = I18nNumberFormatter.numberFormatter(I18nNumberFormatter.serverNumberFormatter(arguments[0])); return old_val.apply(this, arguments); } } return old_val.apply(this, arguments); }; })(jQuery); $(document).on('change', '.number-input', function() { $(this).data('original-number', I18nNumberFormatter.serverNumberFormatter(this.value)); }); $('.number-input').each(function() { $(this).data('original-number', this.value); $(this).val(this.value); // $(this).val(I18nNumberFormatter.numberFormatter(this.value)); // $(this).val($(this).val()); var form = $(this).closest('form'); if (typeof form != 'undefined') { form.append('<input type="hidden" class="_numberFormatter" name="_numberFormatter[]" value="'+$(this).attr('name')+'" />'); } }); $('form').submit(function(){ // var thousandSeparator = (1111).toLocaleString(I18nNumberFormatter_locale.replace('_', '-')).replace(/1/g, ''); // var decimalSeparator = (1.1).toLocaleString(I18nNumberFormatter_locale.replace('_', '-')).replace(/1/g, ''); $('form').find('.number-input').each(function() { var value = $(this).val(); // value = parseFloat(value // .replace(new RegExp('\\' + thousandSeparator, 'g'), '') // .replace(new RegExp('\\' + decimalSeparator), '.') // ); this.value = value; }); }); }); */ 'use strict'; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } var currenyFormatter = new Intl.NumberFormat(I18nNumberFormatter_locale.replace('_', '-'), { style: 'currency', currency: I18nNumberFormatter_currency }); var _numberFormatter = new Intl.NumberFormat(I18nNumberFormatter_locale.replace('_', '-'), { style: 'decimal', minimumFractionDigits: 2, maximumFractionDigits: 2 }); var I18nNumberFormatter = function () { function I18nNumberFormatter() { _classCallCheck(this, I18nNumberFormatter); } _createClass(I18nNumberFormatter, null, [{ key: 'currencyFormatter', value: function currencyFormatter(number) { return currenyFormatter.format(number); } }, { key: 'numberFormatter', value: function numberFormatter(number) { return _numberFormatter.format(number); } }, { key: 'serverNumberFormatter', value: function serverNumberFormatter(number) { // number = number+""; // number = number.replace(',', ''); // number = number.replace('.', ''); // number = parseFloat(parseInt(number))/100.0; // return number; var thousandSeparator = 1111 .toLocaleString(I18nNumberFormatter_locale.replace('_', '-')).replace(/1/g, ''); var decimalSeparator = 1.1.toLocaleString(I18nNumberFormatter_locale.replace('_', '-')).replace(/1/g, ''); // var result = number + ""; // result = result.replace(new RegExp('\\' + thousandSeparator, 'g'), ''); number = number + ""; var result = parseFloat(number.replace(new RegExp('\\' + thousandSeparator, 'g'), '').replace(new RegExp('\\' + decimalSeparator), '.')); return result; } }]); return I18nNumberFormatter; }(); $(document).ready(function () { (function ($) { var old_val = $.fn.val; $.fn.val = function (value) { if (this.hasClass('number-input')) { if (value === undefined) { if (typeof this.data('original-number') == 'undefined' && this.get(0) !== null) { $(this).data('original-number', I18nNumberFormatter.serverNumberFormatter(this.get(0).value)); } return $(this).data('original-number') + ''; // return I18nNumberFormatter.serverNumberFormatter(old_val.apply(this, arguments)); // //do something to get the values // return old_val.apply(this, arguments); } //setter else { //do something with the value $(this).data('original-number', arguments[0] + ''); if (!isNaN(arguments[0])) { arguments[0] = I18nNumberFormatter.numberFormatter(arguments[0]) + ''; } return old_val.apply(this, arguments); // arguments[0] = I18nNumberFormatter.numberFormatter(I18nNumberFormatter.serverNumberFormatter(arguments[0])); // return old_val.apply(this, arguments); } } return old_val.apply(this, arguments); }; })(jQuery); $(document).on('change', '.number-input', function () { $(this).data('original-number', I18nNumberFormatter.serverNumberFormatter(this.value)); }); $('.number-input').each(function () { $(this).data('original-number', this.value); $(this).val(this.value); // $(this).val(I18nNumberFormatter.numberFormatter(this.value)); // $(this).val($(this).val()); var form = $(this).closest('form'); if (typeof form != 'undefined') { form.append('<input type="hidden" class="_numberFormatter" name="_numberFormatter[]" value="' + $(this).attr('name') + '" />'); } }); $('form').submit(function () { // var thousandSeparator = (1111).toLocaleString(I18nNumberFormatter_locale.replace('_', '-')).replace(/1/g, ''); // var decimalSeparator = (1.1).toLocaleString(I18nNumberFormatter_locale.replace('_', '-')).replace(/1/g, ''); $('form').find('.number-input').each(function () { var value = $(this).val(); // value = parseFloat(value // .replace(new RegExp('\\' + thousandSeparator, 'g'), '') // .replace(new RegExp('\\' + decimalSeparator), '.') // ); this.value = value; }); }); });