我在LiveCode中有一个收集客户详细信息的表单。其中一个字段是他们的电话号码。如何阻止他们输入除有效电话号码字符以外的任何内容?
答案 0 :(得分:5)
Neil上面的答案是一种验证数字的简单方法。您可能会发现另外两种有用的方法。
注意:没有'传递'keyDown消息会阻止它向上移动消息路径。 LiveCode字段对象最后获取消息,因此如果您未传递消息,则不会将其添加到字段中。这是像Neil建议的那样进行过滤的好方法。
通过检查字符是否在列表中进行过滤:
on keyDown pKey
if pKey is among the characters of "0123456789()+" then pass keyDown
end keyDown
使用正则表达式匹配进行过滤:
on keyDown pKey
put me & pKey into tPhoneNumber
if matchText(tPhoneNumber,"[0-9]") then pass keyDown
end keyDown
在上面的示例中,您获取当前内容和字段,添加新字符并检查它是否与正则表达式匹配。使用此方法,您可以使用复杂的正则表达式来强制使用某种格式,长度等。
答案 1 :(得分:3)
与所有LiveCode对象一样,字段接收各种消息,其中一个消息是keyDown消息。如果keyDown出现在某个字段中,它将被触发并传递,并按下当前键的参数。我们现在知道关键是什么,我们可以做出适当的回应。 -
on keyDown pKey
if pKey is not a number then
answer "you must type numbers only in this field"
else
pass keyDown
end if
end keyDown