如何在LiveCode中动态验证字段输入?

时间:2014-03-04 11:36:16

标签: livecode

我在LiveCode中有一个收集客户详细信息的表单。其中一个字段是他们的电话号码。如何阻止他们输入除有效电话号码字符以外的任何内容?

2 个答案:

答案 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