Grazie, ma non è quello che intendo.
Mi sono personalizzato uno script reperito con google e che funziona praticamente spostando da una prima select (listLeft) ad una seconda select (listRight) uno o più o tutti i valori previsti nella prima select (listLeft) e viceversa.
Il problema è che vorrei rendere obbligatoria in qualche modo la compilazione del form ma non ci riesco.
In pratica vorrei che:
- il form non fosse spedito ed inviato se la select listRight è vuota;
- adesso anche quando sposto i valori dalla select listLeft alla select listRight mi viene richiesta la compilazione della select listRight;
- il form deve essere spedito con la select listLeft vuota e con la select listRight piena, adesso non viene spedito perchè mi chiede di riempire la select listLeft.
Che cosa sbaglio?
Posto lo script anche perchè è davvero interessante.
codice:
<HEAD>
<SCRIPT LANGUAGE="JavaScript">
<!--
function compareOptionValues(a, b)
{
var sA = parseInt( a.value, 36 );
var sB = parseInt( b.value, 36 );
return sA - sB;
}
function compareOptionText(a, b)
{
var sA = parseInt( a.text, 36 );
var sB = parseInt( b.text, 36 );
return sA - sB;
}
function moveDualList( srcList, destList, moveAll )
{
if ( ( srcList.selectedIndex == -1 ) && ( moveAll == false ) )
{
return;
}
newDestList = new Array( destList.options.length );
var len = 0;
for( len = 0; len < destList.options.length; len++ )
{
if ( destList.options[ len ] != null )
{
newDestList[ len ] = new Option( destList.options[ len ].text, destList.options[ len ].value, destList.options[ len ].defaultSelected, destList.options[ len ].selected );
}
}
for( var i = 0; i < srcList.options.length; i++ )
{
if ( srcList.options[i] != null && ( srcList.options[i].selected == true || moveAll ) )
{
newDestList[ len ] = new Option( srcList.options[i].text, srcList.options[i].value, srcList.options[i].defaultSelected, srcList.options[i].selected );
len++;
}
}
//newDestList.sort( compareOptionValues ); // BY VALUES
newDestList.sort( compareOptionText ); // BY TEXT
// Populate the destination with the items from the new array
for ( var j = 0; j < newDestList.length; j++ )
{
if ( newDestList[ j ] != null )
{
destList.options[ j ] = newDestList[ j ];
}
}
// Erase source list selected elements
for( var i = srcList.options.length - 1; i >= 0; i-- )
{
if ( srcList.options[i] != null && ( srcList.options[i].selected == true || moveAll ) )
{
// Erase Source
srcList.options[i].value = "";
//srcList.options[i].text = "";
//srcList.options[i] = null;
}
}
}
// End of moveDualList()
// End -->
function convalidaForm(Qform)
{
if (Qform.listRight.value == '')
{
alert("Il campo Lista Destinatari è un campo obbligatorio.");
Qform.listRight.focus();
return false;
}
if (Qform.listLeft.value == '')
{
alert("Il campo Lista Destinatari in copia è un campo obbligatorio.");
Qform.listLeft.focus();
return false;
}
// Abilita l'invio del FORM
return(true);
}
</script>
</HEAD>
<BODY>
<div align="center"><center>
<form ACTION="submit.asp" METHOD="POST" name="Qform" onsubmit="return(convalidaForm(this));">
<table border="0">
<tr>
<td>
<select multiple size="20" style="width:70" name="listLeft">
<option value="10">10</option>
<option value="20">20</option>
<option value="30">30</option>
<option value="40">40</option>
<option value="50">50</option>
<option value="A" >A</option>
<option value="B" >B</option>
<option value="F" >F</option>
<option value="X" >X</option>
</select>
</td>
<td><NOBR>
<input type="button" style="width:90" onclick="moveDualList( this.form.listLeft, this.form.listRight, false )" name="Add >>" value="Add >>">
<NOBR>
<input type="button" style="width:90" onclick="moveDualList( this.form.listRight, this.form.listLeft, false )" name="Add <<" value="Add <<">
<NOBR>
<input type="button" style="width:90" onclick="moveDualList( this.form.listLeft, this.form.listRight, true )" name="Add All >>" value="Add All >>">
<NOBR>
<input type="button" style="width:90" onclick="moveDualList( this.form.listRight, this.form.listLeft, true )" name="Add All <<" value="Add All <<">
</NOBR>
</td>
<td>
<select multiple size="20" style="width:70" name="listRight">
</select>
<input type="submit" style="width:90" name="Invia" value="Invia">
</td>
</tr>
</table>
</form>
</center></div>