You should always perform Server side validation, regardless of whether you do any client side validation. This is because there are many ways around clientside validation, such as switching js off or sending a custom built request that doesn't use your page.
It is a good goal to use the same validation rules on both client and server. xVal is a good option for this.
A really good example of this is how I hacked a certain Airline website for our trip to Dubai. When I was trying to select a special meal for my daughter, who is under two years old, there was no "child" option in the select list. Apparently, child meals are only available if you are older than 2. There was a child option for my older daughter. So I opened Firebug, added the option, selected it and submitted the form. It was accepted.
On the flight two child meals turned up as ordered.
Damn! Come to think of it, I should have changed it to First Class! Not on the ball, Mr Dyson!