There are no rules. It depends on how important the validation is. Validation in JavaScript can be faster, because it comes without any HTTP requests which heavily depend on traffic. For JavaScript, it just does not matter.
As to the importance, this is more serious. JavaScript can be 1) switched off by the user, 2) eavesdropped or forged with some malware. Server validation is free from this problem (unless the server host is infected, which is no so likely :-)): even though the HTTP request can be forged, it cannot harm anything on the server, because server-side validation can filter out any signs of malicious activity, and, say, just silently ignore malicious request.
I personally experienced some attack, very trivial yet very harmful (could easily turn your server host into a zombie distributing spam), which I very reliably blocked by server-side validation. This is such an important case, that every Web developer should understand it. Please see my past post on the topic:
unable to send mail , it showing the error in below code .[
^].
—SA