Nie wiem jak to jest dokładnie zrobione, ale są odpowiednie gotowe skrypty w JS ( jednego z nich używam - jak przegrzebie swoje kody to dam w Edycie jego nazwę ) który pozwala na sprawdzanie czy select został wybrany korzystając z nazwy klasy danego selecta.
Kilka przykładów :
Musi być wybrana inna opcja niż pierwsza.
<select class="validate-not-first w200" name="id_klient" title="wybierz klienta"> {section name=idx loop=$klienci}
<option value="{$klienci[idx].id}" {if $klienci[idx].id eq $edit.id_klient}selected{/if}>{$klienci[idx].nazwa}
</option> {/section}
Musi być wybrana jakakolwiek opcja
<select class="validate-not-empty w200" title="wybierz osoby wykonujące" id="list2" multiple size="12" name="ex_users[]" {if $det}disabled{/if}> {section name=idx loop=$ex_users}
<option value="{$ex_users[idx].id}" selected>{$ex_users[idx].nazwisko} {$ex_users[idx].imie}
</option> {/section}
Kody mam, jeżeli chcesz wyśle Ci na emila i będziesz mógł popatrzeć jak to działa .. albo wykorzystać gotowca.
W php będziesz mógł generować selecty z odpowiednimi class="" i będziesz mógł w ten sposób sterować walidacją.