solitamente io faccio entrambi (x lo meno nei form + "importanti"),js ha il vantaggio di fonrnire la "risposta" sulla validità subito,senza che il form venga inviato se non corretto, ma se un utente ha js disabilitato ti becchi tutto quello che vuol scrivere...mentre lato server il controllo funzionerà sempre.