Ciao enpenzieri,
avevo già fatto una cosa del genere...
devi ordinare in base al valore delle options o al testo?
Ti metto tutti e due i sistemi
codice:
<HTML>
<HEAD>
<script language="javascript">
function xOption(Text,Value){
this.text = Text
this.value = Value
}
function ordinaText(cc){
aa = new Array()
oo = new Array()
nOptions = cc.length
for(i=0;i<nOptions;i++){
aa[i] = cc[i].text
oo[i] = new xOption(cc[i].text,cc[i].value)
}
for(i=nOptions;i>=0;i--)
cc[i]=null
aa.sort()
for(i=0;i<nOptions;i++)
for(j=0;j<nOptions;j++)
if(aa[i]==oo[j].text)
cc[i]= new Option(oo[j].text,oo[j].value)
}
function ordinaValue(cc){
aa = new Array()
oo = new Array()
nOptions = cc.length
for(i=0;i<nOptions;i++){
aa[i] = cc[i].value
oo[i] = new xOption(cc[i].text,cc[i].value)
}
for(i=nOptions;i>=0;i--)
cc[i]=null
aa.sort()
for(i=0;i<nOptions;i++)
for(j=0;j<nOptions;j++)
if(aa[i]==oo[j].value)
cc[i]= new Option(oo[j].text,oo[j].value)
}
</script>
</HEAD>
<BODY>
<form name="NomeForm">
<select name="NomeCombo" onchange="alert(this.options[this.selectedIndex].value)">
<option value="1">D</option>
<option value="2">C</option>
<option value="3">B</option>
<option value="4">A</option>
</select>
<input type="button" value="ordina per text" onclick="ordinaText(document.NomeForm.NomeCombo.options)">
<input type="button" value="ordina per value" onclick="ordinaValue(document.NomeForm.NomeCombo.options)">
</form>
</BODY>
</HTML>