use-revolution Digest, Vol 44, Issue 2

cubist at aol.com cubist at aol.com
Tue May 1 18:42:46 EDT 2007


sez "Chipp Walters" <chipp at chipp.com>:
>Thanks Richard,
>
>While your script works fine for numbers, it can't easily validate
>email addresses, social-security numbers, zip codes, etc.. I really
>need a single place I can put all this validation stuff, as the
>project I'm working on has over 50 different input screens.
    Looking at Richard's original script, it seems to me that there's at 
least one semi-obvious way to go...

on keyDown k
   put false into LetItPass
   put the length of the target into TargLen
   switch (the uValidationType of the target)
   case "integer"
      if k is in "0123456789" then put true into LetItPass
      break

   case "zipcode"
      # 5-digit ZIPs: 5 digits
      # 9-digit ZIPs: 5 digits, 1 dash, 4 digits
      if TargLen = 6 then
         # the user is typing the *6th* char, which must be a dash
         if k is "-" then put true into LetItPass
      else if TargLen < 11 then
         # the user is typing any other char, which much be a digit
         if k is in "0123456789" then put true into LetItPass
      end if
      break

   case "socialsecurity"
      # 3 digits one dash, 2 digits, 1 dash, 4 digits; total of 11 chars
      if ((TargLen = 3) or (TargLen = 6)) then
         # the user is typing either the 4th or 7th char;
         # either way, it's gotta be a dash
         if k is "-" then put true into LetItPass
      else if TargLen < 12 then
         # any other char in the string, it's a digit
         if k is in "0123456789" then put true into LetItPass
      end if
      break

   case "complicated"
       # this particular class of input needs a highly complex 
validation scheme
       if ThisComplexValidator (k, (the target)) then put true into 
LetItPass
      break

   default
      put true into LetItPass
      # if you want to be fussy about input validation,
      # *don't* put true into LetItPass by default; rather,
      # leave LetItPass alone

   end switch

   if LetItPass then pass keyDown
end keyDown

   Hope this helps...
________________________________________________________________________
AOL now offers free email to everyone.  Find out more about what's free 
from AOL at AOL.com.



More information about the use-livecode mailing list