webForumDet fria alternativet

Flytta upp och ned?...?...

JavaScript

2 svar · 350 visningar · startad av SilvioF

Medlem sedan juni 2000547 inlägg
Frågan#1

Är det någon som kan hjälpa mig med ett problewm som jag har?

Jag har två <select>-fält som innehåller användarnamn, nu vill jag kunna markera ett namn i ett av fälen och trycka på en knapp så att det flyttas upp eller ned till det andra fältet. Detta skall användas för att t.ex ändra en användares rättigheter.

Medlem sedan mars 2000263 inlägg
#2

anropas:
<input type="button" onClick="move_selected(document.form.första, document.form.andra);" value="flytta till andra">

<select name="första">
...
</select>

<select name="andra">
...
</select>

<script language="javascript">
	var unknown_emails = "";
	function move_selected(select1, select2) {
		var selected = select1.selectedIndex;

		if (select1.selectedIndex == -1)
		{
			alert("Du måste välj någon först");
			return;
		}

		//loopa å kolla om den redan finns...
		var ex = false;
		for (var i = 0; i < select2.options.length; i++) 
		{
			if (select2.options[i].value == select1.options[select1.selectedIndex].value)
				ex = true;
		}

		if (!ex) //om den inte fanns - flytta
		{
			//göra ny i den andra select-boxen
			add_item(select2, select1.options[select1.selectedIndex].text, select1.options[select1.selectedIndex].value);

			//ta bort från första
			remove_item(select1, select1.selectedIndex);
		}
		
		//markera select1
		if (selected == select1.options.length) //man valde den sista
			select1.selectedIndex = select1.options.length-1;
		else
			select1.selectedIndex = selected;
	}

	function remove_item(select, index)
	{
		select.options[index] = null;
	}

	function add_item(select, textaaa, valueaaa)
	{
		new_option = new Option(textaaa, valueaaa);
		select.options[select.options.length] =  new_option;
		return;
	}

</script>

------------------
/bohlin

Medlem sedan dec. 1999707 inlägg
#3

Jag skulle nog göra såhär istället:

======================================


<select name="första" onDblClick="moveSelect(this, andra);">
...
</select>

<select name="andra" onDblClick="moveSelect(this, första);">
...
</select>

======================================

<script lanaguage="javascript">

function moveSelect(oSource, oTarget) {

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

for (var i=0; i<oSource.options.length; i++) {
    if (oSource.options[i].selected == true) {
        oTarget.options[oTarget.options.length] = new Option(oSource.options[i].text, oSource.options[i].value);
        oSource.options[i] = null;
        i--;
    }
}

}

------------------
/ Torbjörn Hansson, webbutvecklare/gränssnittsprogrammerare
Spetsdata AB

[Redigerat av toha den 27 jun 2000]

266 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
136 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)