]> wagnertech.de Git - mfinanz.git/blobdiff - js/common.js
add number calculation in number form fields
[mfinanz.git] / js / common.js
index 86b869c3c878c6de9150b93243d5535834843933..f568782cd342b43a7081090a900d9d6f552ccf01 100644 (file)
@@ -48,27 +48,28 @@ function check_right_number_format(input_name) {
   if(decpoint == thpoint) {
     return show_alert_and_focus(input_name, wrongNumberFormat);
   }
-  if(decpoint == ',') {
-    var decnumbers = input_name.value.split(',');
+  var test_val = input_name.value;
+  if(thpoint && thpoint == ','){
+    test_val = test_val.replace(/,/g, '');
   }
-  else {
-    var decnumbers = input_name.value.split('.');
-  }
-  if(decnumbers.length == 2) {
-    if(decnumbers[1].length > 2)  {
-     /* return show_alert_and_focus(input_name, wrongNumberFormat); */
-    }
+  if(thpoint && thpoint == '.'){
+    test_val = test_val.replace(/\./g, '');
   }
-  else {
-    if(decnumbers.length > 2) {
-      return show_alert_and_focus(input_name, wrongNumberFormat);
-    }
-    if(!thpoint) {
-      if(decnumbers[0].match(/\D/)) {
-        return show_alert_and_focus(input_name, wrongNumberFormat);
-      }
-    }
+  if(thpoint && decpoint == ','){
+    test_val = test_val.replace(/,/g, '.');
   }
+
+  var forbidden = test_val.match(/[^-\+\/\*\.0-9\ ]/g );
+  if (forbidden && forbidden.length > 0 ){
+    return show_alert_and_focus(input_name, wrongNumberFormat);
+  } 
+
+  try{ 
+    eval(test_val);
+  }catch(err){
+    return show_alert_and_focus(input_name, wrongNumberFormat);
+  } 
+
 }
 
 function check_right_date_format(input_name) {