Limiting text input in a text entry field

Philippe Pezard philpez at
Sun Aug 17 13:58:01 EDT 2008

I use a little scrip to verify the quality of numerical entrees, able to work with clasical keyboard or books without number keypad.
It's as following, perharps it may be useful for your purpose :

if Pref = 1 then                                       -- for use with laptop and numeric key pad
  if theKey is not in "1234567890,." then   -- , because it's for french use where "," can be use instead of "."
    pass keyDown
  end if
end if
if Pref = 2 then                                       -- for use with notebook without pressing on uppercase key
  if theKey is not in "&é'(§è!çà,;" and theKey is not quote then 
      -- conversion
      put "124567890,.3" into Varsortie
      put "&é'(§è!çà,;" & quote into Varentree
      repeat with i = 1 to 12
        if theKey is (char i of Varentree) then 
          put (char i of Varsortie) after the target
          exit repeat
        end if
      end repeat
  end if
end if
end keyDown

It seem to work well ...

Best regards
P. Pézard
To: How to use Revolution <use-revolution at>
Message-ID: <ACAD052D-7553-4BA7-85A4-49B76A25506D at>
Content-Type: text/plain; charset=US-ASCII; format=flowed; delsp=yes

Hi Neil,


This should be a straightforward thing but I can only partially get  
it working.
I'm trying to limit a text fields input to only numbers and integers -
I can get numbers only by using:

on keyDown theKey
 if theKey is not a number then beep
 else pass keyDown
end keyDown

but I can't get it to accept integers, even if I specify 'an  
integer' in above.

I think I'm missing something simple!

I think you need something like:

on keyDown theKey
  if theKey is not in ".0123456789"
     then beep
      pass keyDown
   end if
end keyDown



Klaus Major
klaus at

More information about the use-livecode mailing list