webForumDet fria alternativet

Från ruta till ruta

JavaScript

21 svar · 422 visningar · startad av mhedda · sida 2 av 2

Frågan, av mhedda

Hejsan på er! Jag är inte så haj på javascript, så jag har en liten fråga om detta. Jag har pillat lite med detta så jag har tyckte det funkade tills jag såg att om man förde över alla användare från vänstra till höger så gick det inte att föra tillbaka från höger till vänsterruta någon liten bugg kanske. Tacksam för hjälp. <!-- / Funktion som flyttar ett option objekt från vänster till h

Läs frågan i sin helhet →
Medlem sedan feb. 2000385 inlägg
#21

Nu har jag provat koden och den funkar sånär som på att den
lägger till dubbelt på sidorna tex jag tömmer vänster på namn flyttar till höger så blir det dubbletter till höger. Då kanske den första versionen är bättre iallafall där namnen inte flyttas utan är kvar men det blir inga dubbletter.
God Jul.
MVH hedda

Medlem sedan dec. 20025 483 inlägg
#22

Om inte följande modifiering fungerar får du visa exempelkod på ett icke-fungerande exempel ;)

<script type="text/javascript">

if (!Array.prototype.push)
    Array.prototype.push = function(){
	var args = arguments,
	    len	 = args.length;

	for (var i = 0; i < len; ++i)
	    this[this.length] = args[i];

	return this.length;
    }

function move(sel){
    var form	 = document.forms["groupForm"],
	sel1	 = form.elements[sel],
	sel2	 = form.elements[sel == "allGroups" ? "memberGroups" : "allGroups"],
	sel1opts = sel1.options,
	sel2opts = sel2.options,
	sel1_i	 = sel1.options.length,
	sel1arr	 = [],
	sel2arr	 = [];

    if (sel1.selectedIndex == -1) return;

    for (var i = 0; i < sel1_i; ++i)
	if (!sel1opts[i].selected || exists(sel1opts[i], sel2opts))
	    sel1arr.push(sel1opts[i]);
	else
	    sel2arr.push(sel1opts[i]);

    sel1opts.length = 0;

    for (var i = 0, arrlen = sel1arr.length; i < arrlen; ++i)
	sel1opts[i] = new Option(sel1arr[i].text, sel1arr[i].value);

    for (var i = 0, arrlen = sel2arr.length; i < arrlen; ++i)
	sel2opts[sel2opts.length] = new Option(sel2arr[i].text, sel2arr[i].value);
}

function exists(opt, opp){
    for (var i = 0, arrlen = opp.length; i < arrlen; ++i)
	if (opt.value == opp[i].value)
	    return true;
    return false;
}

</script>
250 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)