[xml:1:c089737d5b]<form name="TwoFrames">
<select name="Frame1" size="5" multiple="multiple">
<option value="1">element 1</option>
<option value="2">element 2</option>
<option value="3">element 3</option>
<option value="4">element 4</option>
</select>
<input type="button" value="<<<" onclick="MoveToLeft()" />
<input type="button" value=">>>" onclick="MoveToRight()" />
<select name="Frame2" size="5" multiple="multiple">
<option value="5">element 5</option>
<option value="6">element 6</option>
<option value="7">element 7</option>
<option value="8">element 8</option>
</select>
</form>[/xml:1:c089737d5b]
Po kliknięciu w przyciski zostanie wywołana odpowiednia funkcja MoveToLeft, lub MoveToRight. Oto kod:
Kod
<script language="JavaScript">
var objFrame1 = document.TwoFrames.Frame1;
var objFrame2 = document.TwoFrames.Frame2;
function MoveToRight()
{
var len = objFrame1.length;
for( i = 0; i < len; i++ )
{
if( objFrame1.options[i].selected == true )
{
objFrame2.options[ objFrame2.length ] = new Option( objFrame1.options[i].text );
objFrame1.options[i] = null;
}
}
}
function MoveToLeft()
{
var len = objFrame2.length;
for( i = 0; i < len; i++ )
{
if( objFrame2.options[i].selected == true )
{
objFrame1.options[ objFrame1.length ] = new Option( objFrame2.options[i].text );
objFrame2.options[i] = null;
}
}
}
</script>
var objFrame1 = document.TwoFrames.Frame1;
var objFrame2 = document.TwoFrames.Frame2;
function MoveToRight()
{
var len = objFrame1.length;
for( i = 0; i < len; i++ )
{
if( objFrame1.options[i].selected == true )
{
objFrame2.options[ objFrame2.length ] = new Option( objFrame1.options[i].text );
objFrame1.options[i] = null;
}
}
}
function MoveToLeft()
{
var len = objFrame2.length;
for( i = 0; i < len; i++ )
{
if( objFrame2.options[i].selected == true )
{
objFrame1.options[ objFrame1.length ] = new Option( objFrame2.options[i].text );
objFrame2.options[i] = null;
}
}
}
</script>
Problem pojawia sie przy usuwaniu przeniesionych optionów, za co odpowiada ten kod:
Kod
objFrame2.options[i] = null;
Nie wiem dlaczego ale usuwa sie tylko co drugi option.
Tutaj można zobaczyć to w akcji:
:arrow: http://cudi.miracle.pl/form.html
Próbowałem usuwać w osobnej pętli, ale nic to nie dało. Będe bardzo wdzięczny jeśli ktoś wytłumaczy mi skąd sie wzioł ten błąd, i powie jak go naprawić. W JS stawiam pierwsze kroki
