I thought of a much simpler solution. If possible could you use radio
buttons for those two choices in your HTML? In a radio button group
selecting one automatically deselects other buttons in the group. Then you
could just use one of the built in validation checks, as you already have
done, to make sure one is checked.DED

On Mon, Oct 12, 2009 at 1:43 AM, Phper <hi.steven...@gmail.com> wrote:

>
>
> I am not familiar with the syntax of Jquery plugin.
>
> On Oct 12, 2:19 pm, Don Dunbar <salemd1s...@gmail.com> wrote:
> > Hi , I double checked on javascript's XOR operator and it only works with
> > bitwise: so you will have to write your own XOR . This isn't hard :
> [code]
> > if (!foo != !bar)  [\code] should work for all elements.
> >    or this
> >    [code]if( ( foo && !bar ) || ( !foo && bar ) )[\code]
> >
> > For the validator method I haven't actually tried to run this but you can
> > try this:[code]
> >     $.validator.addMethod(
> >
> >     "onlyCheckOne",
> >     function(value, elements) {
> >         // but put whatever you're using to see if either is checked
> > in the next line
> >         return  this.optional(value) ||  elements[o]:checked XOR
> > elements[1]:checked;
> >     },
> >     "Please check either participations or days, but not both"
> > )[/code] note change XOR to whatever method you decide to use.
> >
> > Then add the check to your rules.
> > DED
> >
> > On Mon, Oct 12, 2009 at 12:36 AM, Phper <hi.steven...@gmail.com> wrote:
> >
> > > <script type="text/javascript" src="http://code.jquery.com/jquery-
> > > latest.js"></script>
> > > <script type="text/javascript" src="http://dev.jquery.com/view/trunk/
> > > plugins/validate/jquery.validate.js"></script>
> >
> > > <script type="text/javascript">
> > > <!--
> > > $(document).ready(function() {
> > >      $("#form1").validate({
> > >        rules: {
> > >           title: {
> > >                required: true,
> > >                 minlength:40
> > >        } ,
> > >        content: {
> > >                required: true,
> > >                 minlength:100,
> > >                 maxlength:600
> > >        },
> > >         evaluation: {
> > >                required: true,
> > >                 minlength:50,
> > >                 maxlength:300
> > >        },
> > >        price: {
> > >                required: true,
> > >                digits:true
> >
> > >        },
> > >        multi:{
> > >                required:true
> > >        }
> > >             },
> > >        messages: {
> >
> > >        }
> > >              });
> > >            });
> >
> > > -->
> > > </script>
> >
> > > As you can see from the code above, "title", "content", "evaluation",
> > > "prices" and "multi" are required. All of them are required. But there
> > > are additional two fields, which are "participations" and "days". Only
> > > one of them is required. Either "participations" or "days" is
> > > required. How to write this code?
> >
> > > On Oct 12, 10:17 am, Phper <hi.steven...@gmail.com> wrote:
> > > > A good clue. But I still don't know where to write the "if"
> statement.
> > > > It would be good if you can give me an example.
> >
> > > > On Oct 11, 10:57 pm, Don Dunbar <salemd1s...@gmail.com> wrote:
> >
> > > > > Hi, if you are using the validation plugin, I believe it has a
> function
> > > > > "addMethod" that allows you to write your own method for the
> > > validation. It
> > > > > requires a name (javascript identifier), a method to check input
> > > against (
> > > > > in your case A and B would be checked for completion) and a message
> to
> > > > > display when there is an error (i.e. neither A nor B is filled out,
> or
> > > both
> > > > > are). You can get the details for using the "addMethod" function at
> the
> > > > > jQuery Docs page.http://docs.jquery.com/Plugins/Validation
> > > > > The page lists demos and the function you need is toward the bottom
> of
> > > the
> > > > > page.
> >
> > > > > The logic is fairly straight forward :  when the form is being
> filled
> > > out
> > > > > listen for when A and B have focus, remember if either is checked
> or
> > > ignored
> > > > > and check to make sure both are not simultaneously filled out.
> Check
> > > this on
> > > > > submit as well.
> >
> > > > > Good luck,
> > > > > DED
> >
> > > > > On Sun, Oct 11, 2009 at 7:42 AM, Phper <hi.steven...@gmail.com>
> wrote:
> >
> > > > > > How can I write the code in the context of Jquery validate
> function?
> >
> > > > > > On Oct 11, 12:43 pm, Don Dunbar <salemd1s...@gmail.com> wrote:
> > > > > > > Hi, javascript has an 'xor' operator. It works just like 'or'
> in an
> > > 'if'
> > > > > > > statement except in 'xor' only one side can be true. In a
> normal
> > > 'or'
> > > > > > > statement either side can be true or both can. So you probably
> want
> > > to do
> > > > > > > something like: if ( A XOR B) { } .  Then only one can be true
> to
> > > > > > continue
> > > > > > > if both are true the statement returns 'false'.Hope this helps.
> > > > > > > DED
> >
> > > > > > > On Sat, Oct 10, 2009 at 10:37 PM, Phper <
> hi.steven...@gmail.com>
> > > wrote:
> >
> > > > > > > > There are two input fields in a form, but only one of them is
> > > > > > > > required, they are not required at the same time. Either A or
> B
> > > is
> > > > > > > > required. ( A is required  OR B is required). In other words,
> a
> > > user
> > > > > > > > can input data to field A, or he can input data to filed B,
> but
> > > he can
> > > > > > > > not input data to Both A and B at the same time.
> >
> > > > > > > > How to implement this constraint in Jquery form validation?
>

Reply via email to