Ciao brutusin,
dovresti memorizzare da qualche parte le options selezionate e all'onchage della select conti se le options selezionate superano il numero massimo consentito, in tal caso reimposti le options selezionate con quelle memorizzate.... è più complicato a spiegare che a fare
codice:
<script type="text/javascript">
var arrSelect=new Array(); //array definito globalmente per memorizzare le options selezionate
function MaxOption(ss,n){
var i,tot=0
for(i=0;i<ss.options.length;i++)
if(ss.options[i].selected)tot++
if(tot>n)
for(i=0;i<ss.options.length;i++)
ss.options[i].selected=arrSelect[ss.name][i]
var opt=new Array();
for(i=0;i<ss.options.length;i++)
opt[opt.length]=ss.options[i].selected
arrSelect[ss.name]=opt
}
</script>
da usare così
codice:
<select name="NomeSelect" multiple="true" size="10" onchange="MaxOption(this,5)">
<option value="1">uno</option>
<option value="2">due</option>
<option value="3">tre</option>
<option value="4">quattro</option>
<option value="5">cinque</option>
<option value="6">sei</option>
<option value="7">sette</option>
<option value="8">otto</option>
<option value="9">nove</option>
<option value="10">dieci</option>
</select>
per deselezionare tutti gli elementi devi clickare sulla option selezionata tenendo premuto il tasto [Ctrl]