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