parent, sibling, ancestor) beside the element at hand.
So, using simple selector should be your primary objective, while you have to be careful with combinators.
Validating functions should return either otherwise. It can instead return a j Query promise that will be resolved if the value is valid, or be rejected otherwise.
Validators can reject with a custom error message as a first argument if desired.
It saves you bandwidth, server load and it saves time for your users.
You are strongly encouraged to customize them in your own stylesheets, but here is the "standard" Parsley css file that is used here on the documentation and examples, if you want to use it to bootstrap your projects with Parsley.
It uses events and inheritance, and allows various plugins.
Current available plugins are in Extras for additional validators.
Parsley is a decoupled library that uses different classes to do the heavy work.
You'll see here the different protagonists involved and how you can configure them to fit your desired validation.