webForumDet fria alternativet

Två fält

6 svar · 345 visningar · startad av skarbratt

skarbrattMedlem sedan juli 2000344 inlägg
#1

Hittar inget exempel, men hur fixar man så att man har två selectlistor brevidvaranda och emellan två knappar med "lägg till" och "ta bort".

Hänger ni med... Dvs jag har X antal namn som antingen skall finnas i den ena eller i den andra select listan.

@ndersMedlem sedan juni 200026 914 inlägg
#2

läs och begrunda

skarbrattMedlem sedan juli 2000344 inlägg
#3

typ som överst påden här sidan: http://www.mattkruse.com/javascript/selectbox/index.html
MEn jag vill kunna skicka med värdena och fixa till den med lite ASP

skarbrattMedlem sedan juli 2000344 inlägg
#4

Såg den tråden, men då Java Script kunskaperna är minimala saknar jag den vanliga HTML koden för att få det att funger för mig..

DVS hur ser HTML-koden ut?

solbulleMedlem sedan mars 20014 998 inlägg
#5

Hm... tycker nog Peter S hade en hyfsad kod, med formulär o allt: http://www.webforum.nu/showthread.php?s=&postid=607316#post607316

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

function move(s){
	var
		sel=document.forms["f"],
		opt=sel.elements[s].options,
		i=opt.length,
		t=[],
		j=null,
		k=0,
		b=false;
	while(i-->0){
		switch(opt[i].selected){
		case false:
			t.push(opt[i]);
			break;
		default:
			b=true;
			sel.elements[s=="n1"?"n2":"n1"].options[sel.elements[s=="n1"?"n2":"n1"].options.length] = new Option(opt[i].text);
		}
	}
	j=t.length;
	while(j-->0){
		opt[k++] = new Option(t[j].text);
	}
	if(b) opt.length = opt.length-1;
};

//-->
</script>

...

<form onsubmit="return false" name="f">
<div style="float:left">
	<select size="12" name="n1">
		<option>Kol_1_1</option>
		<option>Kol_1_2</option>
		<option>Kol_1_3</option>
		<option>Kol_1_4</option>
		<option>Kol_1_5</option>
		<option>Kol_1_6</option>
	</select>
</div>

<div style="float:left;width:70px">
	<div style="position:relative;top:60px;text-align:center">
		<button onclick="move('n1')">--&gt;</button><br>
		<button onclick="move('n2')">&lt;--</button>
	</div>
</div>

<div>
	<select size="12" name="n2">
		<option>Kol_2_1</option>
		<option>Kol_2_2</option>
		<option>Kol_2_3</option>
		<option>Kol_2_4</option>
		<option>Kol_2_5</option>
		<option>Kol_2_6</option>
	</select>
</div>
</form>

sen får du väl läsa dig fram i tråden, det förefaller som om bitarna löses efter hand där.

skarbrattMedlem sedan juli 2000344 inlägg
#6

Mm, ja man kan ju inte se allt. *tack*

skarbrattMedlem sedan juli 2000344 inlägg
#7
<script type="text/javascript">
<!--

function sortAndAdd(f,o){
	var t = [], added=false, sel=null;
	for( var i=0, elm; ( elm=f.options[i] ); i++ ){
		if(!added && o.text < elm.text){
			t.push(o);
			sel=i;
			added=true;
		}
		t.push(elm);
	}
	if(!added) t.push(o);
	f.options.length=0;
	for( var i=0, elm; ( elm=t[i] ); i++ )
		f.options[i] = new Option(elm.text,elm.value);
	f.options[typeof(sel)=="number"?sel:f.options.length-1].selected=true;
};

function move(s){
	var
		sel=document.forms["f"],
		opt=sel.elements[s].options,
		i=opt.length,
		t=[],
		j=null,
		k=0,
		b=false;
	while(i-->0){
		switch(opt[i].selected){
		case false:
			t.push(opt[i]);
			break;
		default:
			b=true;
			sortAndAdd(sel.elements[s=="n1"?"n2":"n1"], new Option(opt[i].text,opt[i].value));
		}
	}
	j=t.length;
	while(j-->0) opt[k++] = new Option(t[j].text,t[j].value);
	if(b) opt.length = opt.length-1;
};

function selectAll(o){
	var f=o.elements["n2"].options, j=f.length;
	while(j-->0) f[j].selected = true;
};

//-->
</script>

...

<form action="t.asp" method="get" name="f" onSubmit="selectAll(this)"> 

<div style="float:left">
	<select size="12" name="n1">
		<option>Kol_1_1</option>
		<option>Kol_1_2</option>
		<option>Kol_1_3</option>
		<option>Kol_1_4</option>
		<option>Kol_1_5</option>
		<option>Kol_1_6</option>
	</select>
</div>

<div style="float:left;width:70px">
	<div style="position:relative;top:60px;text-align:center">
		<button onclick="move('n1')">--&gt;</button><br>
		<button onclick="move('n2')">&lt;--</button>
	</div>
</div>

<div>
	<select size="12" name="n2" multiple="true">
		<option>Kol_2_1</option>
		<option>Kol_2_2</option>
		<option>Kol_2_3</option>
		<option>Kol_2_4</option>
		<option>Kol_2_5</option>
		<option>Kol_2_6</option>
	</select>
</div>
<INPUT TYPE="submit" VALUE="Skicka">
</form>

Koden ovan fungerar bra sälänge man inte flyttar värdena fram och tillbaka,gör man det så skickas bara toma värden vidare när man klickar påsubmit

Genererad på 384 ms · cache AV · v20260730165559-full.f96bc7eb