在 Powerbuilder 中验证文本字段
Validate text field in Powerbuilder
我是 powerbuilder 的新手:
我想在完成输入后验证电子邮件文本字段并转到另一个文本字段。
所以我把代码放在 "itemchanged event of the datawindow"
这是我的代码:
choose case dwo.name
case 'email'
if data <> '' then
if match(data,'^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z][a-zA-Z][a-zA-Z]*[a-zA-Z]*$') then
else
This.SetText('')
MessageBox('Error', 'This is an invalid email')
end if
end if
end choose
这里发生的事情是,当我输入例如 'asd'
.
所以这是一个无效的电子邮件,因为它没有通过匹配
它实际上清除了电子邮件字段,但在 messagebox fired
和我 clicked OK
之后。
我已清除的电子邮件字段上的 'asd'
值 returns。
我觉得很奇怪?
我应该在哪里举办活动 put my validation
以及如何对此进行编码?或者 itemchanged
中有一个代码,以便我可以清除电子邮件字段?
谁能帮帮我?
幸运的是我在 dw itemchanged
事件中修复了它。
choose case dwo.name
case 'email'
if data <> '' then
if match(data,'^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z][a-zA-Z][a-zA-Z]*[a-zA-Z]*$') then
else
MessageBox('Error', 'This is an invalid email')
Return 1 //means does not accept the value and triggers itemerror.
end if
end if
end choose
通过添加 return 1
它会给出另一个消息框。
Data Window Error: This 'asd' does not pass the validation
覆盖此默认错误消息。
在 dw itemerror
事件中添加一些代码块
CHOOSE CASE dwo.name
CASE 'email'
This.setText('') //if you just want to validate just remove this.
Return 2 //means does not accept the value and does not let losefocus
END CHOOSE
。 :D
我是 powerbuilder 的新手:
我想在完成输入后验证电子邮件文本字段并转到另一个文本字段。
所以我把代码放在 "itemchanged event of the datawindow"
这是我的代码:
choose case dwo.name
case 'email'
if data <> '' then
if match(data,'^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z][a-zA-Z][a-zA-Z]*[a-zA-Z]*$') then
else
This.SetText('')
MessageBox('Error', 'This is an invalid email')
end if
end if
end choose
这里发生的事情是,当我输入例如 'asd'
.
所以这是一个无效的电子邮件,因为它没有通过匹配
它实际上清除了电子邮件字段,但在 messagebox fired
和我 clicked OK
之后。
'asd'
值 returns。
我觉得很奇怪?
我应该在哪里举办活动 put my validation
以及如何对此进行编码?或者 itemchanged
中有一个代码,以便我可以清除电子邮件字段?
谁能帮帮我?
幸运的是我在 dw itemchanged
事件中修复了它。
choose case dwo.name
case 'email'
if data <> '' then
if match(data,'^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z][a-zA-Z][a-zA-Z]*[a-zA-Z]*$') then
else
MessageBox('Error', 'This is an invalid email')
Return 1 //means does not accept the value and triggers itemerror.
end if
end if
end choose
通过添加 return 1
它会给出另一个消息框。
Data Window Error: This 'asd' does not pass the validation
覆盖此默认错误消息。
在 dw itemerror
事件中添加一些代码块
CHOOSE CASE dwo.name
CASE 'email'
This.setText('') //if you just want to validate just remove this.
Return 2 //means does not accept the value and does not let losefocus
END CHOOSE
。 :D