Erweiterung der common.js um die function setupPoints(numberformat, wrongFormat)...
authorThomas Kasulke <t.kasulke@linet-services.de>
Fri, 13 Apr 2007 13:05:39 +0000 (13:05 +0000)
committerThomas Kasulke <t.kasulke@linet-services.de>
Fri, 13 Apr 2007 13:05:39 +0000 (13:05 +0000)
überprüfen. Einzubingen wie folgt:

- in jeder pl, in der input-tags überprüft werden sollen, muss $onload durch folgendes erweitert werden:
   $onload .= qq|;setupPoints('|. $myconfig{numberformat} .qq|', '|. $locale->text("wrongformat") .qq|')|;
- die common.js muss eingebunden sein
- in zu überprüfendem input-tag muß folgendes stehen:
    onBlur=\"check_right_date_format(this)\"

js/common.js

index 456ca38..fe4635a 100644 (file)
@@ -1,3 +1,15 @@
+
+function setupPoints(numberformat, wrongFormat) {
+  decpoint = numberformat.substring((numberformat.substring(1, 2).match(/.|,/) ? 5 : 4), (numberformat.substring(1, 2).match(/.|,/) ? 6 : 5));
+  if (numberformat.substring(1, 2).match(/.|,/)) {
+    thpoint = numberformat.substring(1, 2); 
+  }
+  else {
+    thpoint = null;
+  }
+  wrongformat = wrongFormat;  
+}
+
 function centerParms(width,height,extra) {
   xPos = (screen.width - width) / 2;
   yPos = (screen.height - height) / 2;
@@ -21,4 +33,44 @@ function set_longdescription_window(input_name) {
     "longdescription=" + escape(document.getElementsByName(input_name)[0].value) + "&" +
     "input_name=" + escape(input_name) + "&"
   window.open(url, "_new_generic", parm);
-}
+  }
+
+  function check_right_date_format(input_name) {
+    var decnumbers = input_name.value.split(decpoint);
+    if(thpoint) {
+      var thnumbers = input_name.value.split(thpoint);
+      if(thnumbers[thnumbers.length-1].match(/.+decpoint$/g)) {
+        thnumbers[thnumbers.length-1] = thnumbers[thnumbers.length-1].substring(thnumbers[thnumbers.length-1].length-1);
+      }
+      if(thnumbers[thnumbers.length-1].match(/.+decpoint\d$/g)) {
+        thnumbers[thnumbers.length-1] = thnumbers[thnumbers.length-1].substring(thnumbers[thnumbers.length-1].length-2);
+      }  
+      if(thnumbers[thnumbers.length-1].match(/.+decpoint\d\d$/g)) {
+        thnumbers[thnumbers.length-1] = thnumbers[thnumbers.length-1].substring(thnumbers[thnumbers.length-1].length-3);
+      }  
+      for(var i = 1; i < thnumbers.length; i++) {
+        if(!thnumbers[i].match(/\d\d\d/g)) {
+          return show_alert_and_focus(input_name);
+        }
+        if(thnumbers[i].match(/.*decpoint.*|.*thpoint.*/g)) {
+          return show_alert_and_focus(input_name);
+        }
+      }
+      if(decnumbers.length > 2 || (decnumbers.length > 1 ? (decnumbers[1].length > 2) : false)) {
+        return show_alert_and_focus(input_name);
+      }
+    }
+    else {
+      if(decnumbers.length > 1 || decnumbers[0].length > 2) {
+        return show_alert_and_focus(input_name);
+      }
+    }
+  }
+  
+  function show_alert_and_focus(input_name) {
+    input_name.select();
+    alert(wrongformat + "\n\r\n\r--> " + input_name.value);
+    input_name.focus();
+    return false;
+  }
+