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

JavaScript

2 svar · 357 visningar · startad av SilvioF

Medlem sedan juni 2000547 inlägg
Trådstart#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>
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--;
    }
}

}
285 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
132 ms — deklarationer (db)
0 ms — hämta statistik (cache)
150 ms — hämta tråd, inlägg och bilagor (db)
131 ms — ändringar (db)