Browse Source

Added javascript validation to integer and float widgets.

pdontthink 22 years ago
parent
commit
39748c1852
1 changed files with 15 additions and 2 deletions
  1. 15 2
      functions/options.php

+ 15 - 2
functions/options.php

@@ -274,11 +274,24 @@ class SquirrelOption {
     }
 
     function createWidget_Integer() {
-        return ($this->createWidget_String());
+
+        // add onChange javascript handler to a regular string widget
+        // which will strip out all non-numeric chars
+        return preg_replace('/>/', ' onChange="a=this.value; b=\'\'; '
+                    . 'for (i=0;i<a.length;i++) { if (a.charAt(i)>=\'0\' '
+                    . '&& a.charAt(i)<=\'9\') b += a.charAt(i); } '
+                    . 'this.value=b;">', $this->createWidget_String());
     }
 
     function createWidget_Float() {
-        return ($this->createWidget_String());
+        
+        // add onChange javascript handler to a regular string widget
+        // which will strip out all non-numeric (period also OK) chars 
+        return preg_replace('/>/', ' onChange="a=this.value; b=\'\'; '
+                    . 'for (i=0;i<a.length;i++) { if ((a.charAt(i)>=\'0\' '
+                    . '&& a.charAt(i)<=\'9\') || a.charAt(i)==\'.\') '
+                    . 'b += a.charAt(i); } this.value=b;">'
+                , $this->createWidget_String());
     }
 
     function createWidget_Boolean() {