$(document).ready( function() { window.onbeforeunload = confirmExit; // prevent submit by enter press lockEnter(); $("#value").change(function(e){ $(this).val(FormatNumber($(this).val())); }); } ); var check_form_ = check_form; check_form = function(formname) { window.onbeforeunload = null; if (check_form_(formname) == false) { window.onbeforeunload = confirmExit; return false; } else { //$('#value').val(UnformatNumber($('#value').val())); return true; } return false; }; function confirmExit() { return ""; } function lockEnter() { // prevent default $(window).keydown(function(event) { if (event.keyCode == 13 && $(":focus").prop('tagName')!='input') { event.preventDefault(); return false; } }); } function FormatNumber(number, precision) { var precision = precision == 0 || precision ? precision : 2; // make string.. number = number + ''; var minus = false; if (number.charAt(0) == '-') { minus = true; number = number.slice(1); } number = number.replace(',', '.'); // round number = toFixed(number, precision); // add 1000 sep var tmp = number.split("."); var c = ''; for (var i = tmp[0].length; i != -1; i--) { c += tmp[0].charAt(i); if ((tmp[0].length - i) == 0 || i == 0) continue; if ((tmp[0].length - i) % 3 == 0) c += '.'; } // reverse c c = c.split("").reverse().join(""); if (minus) c = '-' + c; return precision == 0 ? c : c + ',' + tmp[1]; } function UnformatNumber(number) { if (!number) number = 0; // make string.. number = number + ''; // remove 1000 sep number = number.replace('.', ''); // change ',' to '.' number = number.replace(',', '.'); return parseFloat(number); } // round with precision function toFixed(value, precision) { var precision = precision || 0, neg = value < 0, power = Math.pow(10, precision), value = Math.round(value * power), integral = String((neg ? Math.ceil : Math.floor)(value / power)), fraction = String((neg ? -value : value) % power), padding = new Array(Math.max(precision - fraction.length, 0) + 1).join('0'); //fix problem with Math.floor and Math.ceil with result zero (lose sign) if (neg && integral=="0") integral='-'+integral; return precision ? integral + '.' + padding + fraction : integral; }