Jörn Zaefferer wrote:
>
> Dmitrii 'Mamut' Dimandt schrieb:
>> Jörn Zaefferer wrote:
>>  
>>> I'm gonna take a look at that library for some inspiration. And maybe
>>> copy some validation methods (called rules at yav).
>>>
>>> Let me know if you have any specific requests for the jQuery
>>> validation plugin.
>>>
>>>     
>> That would be the pre-condition, implies and post-condition. Those
>> definitely rule
>>   
> That is an interesting concept that I'm currently trying to understand.
>
> My plugin supports required-dependencies using expressions and
> functions, but they have their limit.
>
> This would make field2 required only if field1 is blank:
>
> rules: {
>  field2: { required: "#field1:blank" }
> }
>
> But I can't express that either field1 or field2 is required. How
> would I express that using pre/post-condition and implies?
>
That I don't know :)

'implies' is best seen with the advanced form in the example
(http://yav.sourceforge.net/en/learnbyexample.html). See how validation
on the last input field changes depending on what's selected in the
combo box.

If you chose "email" the input is validated against one set of rules:

rules[15]='contactType|equal|phone|pre-condition';
rules[16]='contact|regexp|^[0-9]{10}$|post-condition';
rules[17]='15|implies|16|Enter a phone (ten digits)

So if contactType value changes to phone, contact is validated against
^[0-9]{10}$

However:

rules[18]='contactType|equal|e-mail|pre-condition';
rules[19]='contact|regexp|[EMAIL PROTECTED]|post-condition';
rules[20]='18|implies|19|Enter a valid e-mail'

If contactType becomes 'e-mail' contact is validated against [EMAIL PROTECTED]


Same is with the 'Name required' checkbox. If the checkbox is checked,
you must input a name:

rules[11]='nameRequired|equal|checked|pre-condition';
rules[12]='name|required|post-condition';
rules[13]='11|implies|12|name required';



I guess what you want is something like:

rules[1]='field1|equal||pre-condition';
rules[2]='field2|regexp|^a-zA-Z$|post-condition';
rules[3]='1|implies|2|Enter either field 1 or field 2';

rules[4]='field2|equal||pre-condition';
rules[5]='field1|regexp|^a-zA-Z$|post-condition';
rules[6]='4|implies|5|Enter either field 1 or field 2';

Or some such. I'm not sure (I'm guessing from the examples, never used
the validator myself :) )

Reply via email to