---
title: "Flytta mellan selectboxar"
type: "forum-thread"
url: "https://www.webforum.nu/amne/javascript/65103-flytta-mellan-selectboxar"
topic: "JavaScript"
topic_url: "https://www.webforum.nu/amne/javascript"
author: "Macce"
published: "2003-01-16T17:09:21.000Z"
updated: "2003-05-06T09:42:39.000Z"
replies: 22
views: 676
page: 1
pages: 2
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/javascript/65103-flytta-mellan-selectboxar"
---

# Flytta mellan selectboxar

_Sida 1 av 2._

## #1 — Macce, 2003-01-16T17:09Z

Har letat som en tok efter ett script som 
visar två selectboxar.  :x 

Den ena med ett gäng alternativ, och när man klickar på dessa 
ska dom hoppa över till den andra boxen.

Om jag sen ångrar ett val så ska jag kunna klicka i andra rutan så det hoppar tillbaks.

Annars kan man tänka sig att man har två knappar mellan boxarna med vänster- resp högerpil för attr flytta värdena.

Nån som vet var man kan hitta det...

Permalänk: https://www.webforum.nu/p/65103

## #2 — Peter S, 2003-01-16T17:59Z

Är det någonting sådant här du söker?

```
<head>
<script type="text/javascript">
<!--

function moveContent(s){
	var box1 = document.getElementById("box1");
	var box2 = document.getElementById("box2");
	var currentBox = (s=="box1") ? box1 : box2;
	var theOtherBox = (s=="box1") ? box2 : box1;
	var currentOption = null;

	for(var i=0; i<currentBox.options.length; i++){
		if(currentBox.options[i].selected){
			currentOption = currentBox.options[i];
			break;
		}
	}

	if(currentOption){
		currentBox.removeChild(currentOption);
		theOtherBox.appendChild(currentOption);
	} else
		alert("Slut på alternativ!");
};

//-->
</script>
</head>

<body>

<form onsubmit="return false">

<table width="50%" align="center" border="0" cellpadding="0" cellspacing="0">
<tr>

<td>

<select id="box1">
	<option value="1">Testvärde #1</option>
	<option value="2">Testvärde #2</option>
	<option value="3">Testvärde #3</option>
	<option value="4">Testvärde #4</option>
</select>

</td>

<td align="center">

<button onclick="moveContent('box1')">--&gt;</button><br>
<button onclick="moveContent('box2')">&lt;--</button>

</td>

<td align="right">

<select id="box2">
	<option value="5">Testvärde #5</option>
	<option value="6">Testvärde #6</option>
	<option value="7">Testvärde #7</option>
	<option value="8">Testvärde #8</option>
</select>

</td>

</tr>
</table>

</form>

</body>
```

 :)

Permalänk: https://www.webforum.nu/p/917134

## #3 — Macce, 2003-01-16T18:04Z

Härligt !!!

Tusen tack  :birp

Permalänk: https://www.webforum.nu/p/917141

## #4 — Macce, 2003-01-17T11:25Z

Nån som kan få till det så att man även kan dubbelklicka i boxarna så valet hoppar över till andra boxen ?

mvh

Permalänk: https://www.webforum.nu/p/917741

## #5 — jupiters, 2003-01-17T15:12Z

skulle varit enkelt lägga in ondblclick="moveContent('box1')"
i selecten men ondblclick fungerar ju tydligen inte i en select

Permalänk: https://www.webforum.nu/p/917935

## #6 — skyman, 2003-04-29T08:59Z

Jag sitter med samma rpoblem här.
Jag undrar om man kan ändra så att de man väljer i den första boxen inte försvinner, de bara kopieras över till den andra boxen.

Eller om man kunde göra så att när man flyttar tillbaka den som man flyttade över så ska den komma på den plats som den låg på innan, dvs i bokstavsordning.
Kan man göra så att för varje tillbakaflytt så uppdaterar man boxen och sorterar i bokstavsordning?

Mvh

Permalänk: https://www.webforum.nu/p/1027453

## #7 — Peter S, 2003-04-30T08:07Z

Beroende på vad du kommer att ha för text i dina "options", d.v.s.  \<option\>**text**\</option\>, kan jag ge dig en lösning. Innehåller texten siffror blir det till att skriva en komplicerad sorteringsalgoritm eftersom *sort()*\-funktionen som finns för *Array* inte kommer att sortera sådana texter optimalt, och en sådan algoritm har ( iallafall ) inte jag tid att skriva.

 :)

Permalänk: https://www.webforum.nu/p/1031140

## #8 — skyman, 2003-04-30T08:09Z

Det ska bara bokstavs-sorteras :)

Permalänk: https://www.webforum.nu/p/1031143

## #9 — Peter S, 2003-04-30T09:38Z

Ok, jag är lite upptagen just nu så jag återkommer ikväll ( om inte någon annan hinner före ;)  ).

 :)

Permalänk: https://www.webforum.nu/p/1031226

## #10 — skyman, 2003-04-30T09:44Z

Helt ok med mig :)

Permalänk: https://www.webforum.nu/p/1031232

## #11 — Peter S, 2003-04-30T12:30Z

Är det någonting sådant här du är ute efter?

```
<script type="text/javascript">
<!--

function move(s){
	if(document.forms["f"].elements[s].options.selectedIndex==-1)
		return;
	var
		c=document.forms["f"].elements[s],
		i=c.length;

	while(i-->0){
		if(c[i].selected){
			add(c[i],(s=="s1"?"s2":"s1"));
			break;
		}
	}
};

function add(o,f){
	if(exists(o,f))
		return;

	var
		e=document.forms["f"].elements[f],
		i=e.length,
		j=i+1,
		k=0,
		t=[o];

	while(i-->0)
		t.push(e[i]);

	t.sort(function(a,b){
		if(a.text<b.text)
			return -1;
		if(a.text>b.text)
			return 1;
		return 0;
	});

	e.options.length=0;

	while(j-->0)
		e.options[k]=new Option(t[k].text,t[k++].value);
};

function exists(e,s){
	var
		f=document.forms["f"].elements[s],
		i=f.length;

	while(i-->0){
		if(e.text==f[i].text)
			return true;
	}

	return false;
};

//-->
</script>

...

<div>
<form name="f" onsubmit="return false">

<div style="float:left">
	<select size="8" name="s1">
		<option>A</option>
		<option>B</option>
		<option>C</option>
		<option>D</option>
		<option>E</option>
		<option>F</option>
	</select>
</div>

<div style="float:left;margin:35px 10px 0 10px">
	<button onclick="move('s1')">--&gt;</button>
	<br>
	<button onclick="move('s2')">&lt;--</button>
</div>

<div>
	<select size="8" name="s2">
		<option>G</option>
		<option>H</option>
		<option>I</option>
		<option>J</option>
		<option>K</option>
		<option>L</option>
	</select>
</div>

</form>
</div>
```

 :)

Permalänk: https://www.webforum.nu/p/1031329

## #12 — skyman, 2003-05-05T07:28Z

Det fungerade bra.
Men det är så att jag vill att 's2' ska heta 's2\[\]' så att jag innehållet i den ska läggas i en Array.
Hur ska jag fixa det? Det ju inte att ändra till: ;)

```
<button onclick="move('s2[]')">&lt;--</button>
```

Jag har dessutom 'multiple', hur fixar man så att den kan flytta över fler samtidigt?

Tak för hjälpen! :)

Permalänk: https://www.webforum.nu/p/1034933

## #13 — skyman, 2003-05-05T14:16Z

Jag lyckas flytta över fler samtidigt men jag kan inte flytta tillbaka de val som jag gjort.
Min s2 är tom från början:

```
<select name="s2"></select>
```

Det måste vara det som sabbar det, för jag får att return false i exists...

Permalänk: https://www.webforum.nu/p/1035281

## #14 — Peter S, 2003-05-05T16:06Z

Eftersom du inte vill att alternativ skall försvinna vid flyttning, så har jag lagt till en "delete"-knapp för att åstadkomma den delen. [Sidan](http://www32.brinkster.com/petersvensson/select.asp).

 :)

Permalänk: https://www.webforum.nu/p/1035369

## #15 — skyman, 2003-05-06T06:39Z

Tack, det funkade perfekt! :)

Permalänk: https://www.webforum.nu/p/1035873

## #16 — skyman, 2003-05-06T07:26Z

Nästan...
När jag markerar alla mina 256 poster i s1 och ska flytta över dem till s2 så hänger sig webläsaren i 20 sek innan alla poster är överflyttade, scrollen i s2 åker upp och ner som en jojjo som om den flyttar över allt många gånger.

Om man flyttar över bara några få samtidigt så är det inga problem...

Permalänk: https://www.webforum.nu/p/1035899

## #17 — Peter S, 2003-05-06T08:14Z

Det är den "feature" som du bad om  ;)  För varje post som flyttas över sorteras den även i rätt ordning, därav "jojjon" ( den ena posten kanske skall sorteras sist medan en annan kanske skall ligga i mitten, t.ex. ). Tid tar det p.g.a. det stora antalet poster.

 :)

Permalänk: https://www.webforum.nu/p/1038732

## #18 — skyman, 2003-05-06T08:17Z

Ok, det var ju inte bra alls... hmm
Då kanske man ska slippa sorteringen. Om det finns tusentals med poster så blir det ju inte alls bra... :)

Permalänk: https://www.webforum.nu/p/1038734

## #19 — Peter S, 2003-05-06T08:22Z

Jag tycker det är snyggt  ;) 

Om du skall ha tusentals poster kanske besökaren(?) tror att webbsidan har hängt sig om ingenting händer ( om du inte sorterar d.v.s. ). 

 :)

Permalänk: https://www.webforum.nu/p/1038738

## #20 — skyman, 2003-05-06T08:34Z

Men eftersom den hänger sig för en stund redan vid 200 poster så är nog inte så bra.

Permalänk: https://www.webforum.nu/p/1038752

---

Tråden på webben: https://www.webforum.nu/amne/javascript/65103-flytta-mellan-selectboxar  
Nästa sida: https://www.webforum.nu/amne/javascript/65103-flytta-mellan-selectboxar/page2.md
