Neil's answer above is a great simple way of validating for numbers. There are two other methods you might find useful.
Note: Not 'passing' the keyDown message stops it from moving up the message path. The LiveCode field object gets the message last, so if you don't pass it, it won't be added to the field. It's a great way of performing filtering like Neil suggested.
Filter by checking if character is in a list:
on keyDown pKey
if pKey is among the characters of "0123456789()+" then pass keyDown
end keyDown
Filter using a regular expression match:
on keyDown pKey
put me & pKey into tPhoneNumber
if matchText(tPhoneNumber,"[0-9]") then pass keyDown
end keyDown
In the above example you take the current contents and of the field, add the new character and check if it matches the regular expression. Using this method you can use complex regular expressions that force a certain format, length etc.