Beefy Boxes and Bandwidth Generously Provided by pair Networks
Keep It Simple, Stupid
 
PerlMonks  

Data::FormValidator and Either/Or Fields

by impossiblerobot (Deacon)
on Jun 13, 2002 at 14:09 UTC ( [id://174206]=perlquestion: print w/replies, xml ) Need Help??

impossiblerobot has asked for the wisdom of the Perl Monks concerning the following question:

Does anyone know how to validate a form -- using the normal Data::FormValidator interface -- for a case where there are two text fields, of which at least one needs to be filled in?

Specifically, I have a form with two fields, Zip Code and Postal Code, and I need to make sure that either one or the other is filled, then use a constraint to validate the filled field.

I've tried several approaches, but I'm stumped. I would prefer not to hack the module (or subclass it) unless absolutely necessary, but that looks like the next step.


Impossible Robot
  • Comment on Data::FormValidator and Either/Or Fields

Replies are listed 'Best First'.
Re: Data::FormValidator and Either/Or Fields
by dwiz (Pilgrim) on Jun 14, 2002 at 06:31 UTC

    Re-read the documentation on dependencies that should take of that part of your question. You can use constraints on any fields. So if the dependency is there it is validated and if incorrect then you get an error. If the dependency is not there the you also get an error.

    I hope this is what you were asking for.

    If this does not help then post the relevant code and I will try to do more for you.

    -dwiz

      Dependencies (and Dependency Groups) constraint checking only kicks in when one of the dependent fields is present. It then requires that the other dependent fields are also present.

      My problem is just the opposite: determining that at least one of the fields is filled. In other words:

      # Should be valid my %param = ( zip => '55555', postal => '',); # or my %param = ( zip => '', postal => '11111',); # Should not be valid my %param = ( zip => '', postal => '',);

      If I make both params required, then they're both always required, which is not what I want.

      If I make them optional, and add constraints to check that at least one has a value, the constraints are never checked, since the fields are empty.

      If I create dependencies, and add constraints to check that at least one has a value, the constraints are never checked, since none of the dependent fields exist.

      Thanks anyway for your help, and if you know of a way to do this that I've overlooked, please post.


      Impossible Robot

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: perlquestion [id://174206]
Approved by Kanji
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others taking refuge in the Monastery: (6)
As of 2024-04-25 15:28 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found