Prendendo spunto da un recente post sulle select, ho pensato di realizzare un codice d'esempio da inserire tra gli "script utili" del post in rilievo in questo forum.
L'ho sviluppato scrivendolo di getto, più velocemente che non ragionatamente, anche perchè tempo non ne ho molto
.
Vi sfido dunque a far di meglio, ad ottimizzare (o addirittura stravolgere) questo script, in modo da fornire a tutti un altro script di qualità by HTML.it :quote:
codice:
<html><head><title>Gestione Select by Gwendlyn</title>
<script>
function copy(p,q){
if(eval("document.f.s"+p+".options.selectedIndex")>-1){
tmp=new Option();
eval("tmp.text=document.f.s"+p+".options[document.f.s"+p+".options.selectedIndex].text");
eval("tmp.value=document.f.s"+p+".options[document.f.s"+p+".options.selectedIndex].value");
eval("document.f.s"+q+".options[document.f.s"+q+".options.length]=tmp");
}else MsgBox();
}
function del(k){
if(eval("document.f.s"+k+".options.selectedIndex")>-1){
eval("document.f.s"+k+".options[document.f.s"+k+".options.selectedIndex]=null");
}else MsgBox();
}
function move(m,n){
if(eval("document.f.s"+m+".options.selectedIndex")>-1){
copy(m,n);
del(m);
}else MsgBox();
}
function moveupdown(a,b){
pos=eval("document.f.s"+a+".options.selectedIndex");
lung=eval("document.f.s"+a+".options.length");
if(pos>-1){
if((b==1&&pos<lung-1)||(b==-1&&pos>0)){
tmp1=new Option();
tmp2=new Option();
eval("tmp1.text=document.f.s"+a+".options[pos+b].text");
eval("tmp1.value=document.f.s"+a+".options[pos+b].value");
eval("tmp2.text=document.f.s"+a+".options[pos].text");
eval("tmp2.value=document.f.s"+a+".options[pos].value");
eval("document.f.s"+a+".options[pos]=tmp1");
eval("document.f.s"+a+".options[pos+b]=tmp2");
eval("document.f.s"+a+".options.selectedIndex=pos+b");
}
}else MsgBox();
}
function unsel(h){
eval("document.f.s"+h+".options.selectedIndex=-1")
}
function add(h){
lung=eval("document.f.s"+h+".options.length");
tmp=new Option();
eval("tmp.text=document.f.txt"+h+".value");
eval("tmp.value=document.f.txt"+h+".value");
eval("document.f.s"+h+".options[lung]=tmp")
}
function MsgBox(){
alert("Selezionare un'opzione")
}
</script>
</head><body bgcolor=ffffff topmargin=0 marginheight=0 leftmargin=0 marginwidth=0 rightmargin=0 bottommargin=0>
<form name=f>
<table border=0 cellpadding=0 cellspacing=4><tr><td>
<input type=button value=" + " onclick=moveupdown(1,-1) style="width:23">
<input type=button value=" -- " onclick=moveupdown(1,1) style="width:23">
</td><td>
<select name=s1 size="10" style="width:100">
<option value="a">a
<option value="aa">aa
<option value="aaa">aaa
<option value="aaaa">aaaa
<option value="aaaaa">aaaaa
</select></td><td><select name=s2 size="10" style="width:100">
<option value="b">b
<option value="bb">bb
<option value="bbb">bbb
<option value="bbbb">bbbb
<option value="bbbbb">bbbbb
</select></td><td>
<input type=button value=" + " onclick=moveupdown(2,-1) style="width:23">
<input type=button value=" -- " onclick=moveupdown(2,1) style="width:23">
</td></tr>
<tr><td colspan=4></td></tr>
<tr><td></td><td>
<input type=text name=txt1 style="width:60"><input type=button value="add^" onclick="add(1)" style="width:40">
<input type=button value="> Copia >" onclick="copy(1,2)" style="width:100">
<input type=button value="> Sposta >" onclick="move(1,2)" style="width:100">
<input type=button value="> Elimina" onclick="del(1)" style="width:100">
<input type=button value="Deseleziona" onclick="unsel(1)" style="width:100">
</td><td>
<input type=text name=txt2 style="width:60"><input type=button value="add^" onclick="add(2)" style="width:40">
<input type=button value="< Copia <" onclick="copy(2,1)" style="width:100">
<input type=button value="< Sposta <" onclick="move(2,1)" style="width:100">
<input type=button value=" Elimina <" onclick="del(2)" style="width:100">
<input type=button value="Deseleziona" onclick="unsel(2)" style="width:100">
</td><td></td></tr>
</table>
</form>
</body></html>
:quote: