2009年8月19日星期三

[PerlChina] Re: 请教一个关于Data::FormValidator的问题

Mike.G wrote:
> Hi, 最近自己写个项目。
> 用的是CGI::Application,
> 我加入了CGI::Application::Plugin::ValidateRM
> 配合HTML::FormInFill插件来使用。
>
> 这里的问题是。
> 在Data::FormValidator的profile里:
> 1、如何让一个字段应用多个constraint_method呢?
> 我看文档里写的是类似这样的:
> 字段名=>[
> constraint_name,
>
> {
> name=>'name',
> constraint_method=>email(), (#就是选定的constraint)
> }
>
> ]
>
> 看上去可以work. 问题是,可否让这个字段在第一个constraint_name时检查失
> 败,就不见查后一个或者多个constraint呢?
>

这种情况下我记得第一个失败了,下一个就不会去检查了。


> 2、我看文档里说可以使用自定义的sub 引用。
> 比如说这样写:
> 字段名=>my_sub()
>
> sub my_sub {
> return sub {
> my $dfv = shift;
> $dfv->name_this('my_sub');
> return something.
>
> }
> }
>
> 但是这个时候有个问题,我发现my_sub是可以执行的。但是如何返回出错消息呢?
> 如果没有通过验证。
>
> 比如说类似这种:
>
> 字段名=>my_sub(),
> msgs=>{
> constraint=>{
> my_sub=>'error is here',
> }
> }
>
> sub my_sub {
> return sub {
> my $dfv = shift;
> $dfv->name_this('my_sub');
> return something.
>
> }
> }
>
>
> 实际上在我的代码中,总是不会出现那个error is here.

sub 里检验没有通过需要返回 false ,这时错误信息才会显示。

Qiang

--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛"PerlChina Mongers 讨论组"论坛。
要在此论坛发帖,请发电子邮件到 perlchina@googlegroups.com
要退订此论坛,请发邮件至 perlchina+unsubscribe@googlegroups.com
更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛
-~----------~----~----~----~------~----~------~--~---

没有评论: