100 lines
2.3 KiB
JavaScript
Executable File
100 lines
2.3 KiB
JavaScript
Executable File
$(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;
|
|
} |