Avatar billede eksperten1 Nybegynder
24. marts 2003 - 12:24 Der er 6 kommentarer

Rækkefølge placering

Jeg leder efter et Javascript som kan bruges til at "rykke rundt" på kategorier/felter i en select multiple.

Jeg har fundet et VBscript, men da den også skal kunne anvendes på andet end PC/IE, så skal det være i JS.

Eksemplet findes her: http://1001line.dk/filop/vbscript/genraekkefoelge.asp

Er der nogen der kender til noget tilsvarende i Javascript?

mvh
Mark
Avatar billede olebole Juniormester
24. marts 2003 - 12:52 #1
<ole>

Du kunne jo gøre noget à la:

<script type="text/JavaScript">
function skift(fra, til) {
    var s = document.f.s;
    var tmpOptFra = new Array(s.options[fra].value, s.options[fra].text);
    var tmpOptTil = new Array(s.options[til].value, s.options[til].text);
    s.options[fra].value = tmpOptTil[0];
    s.options[fra].text = tmpOptTil[1];
    s.options[til].value = tmpOptFra[0];
    s.options[til].text = tmpOptFra[1];
}
</script>
<form name="f">
<select name="s">
    <option value="0">Bla 0</option>
    <option value="1">Bla 1</option>
    <option value="2">Bla 2</option>
    <option value="3">Bla 3</option>
    <option value="4">Bla 4</option>
</select>
</form>
<button onclick="skift(3, 1)">TEST</button>

/mvh
</bole>
Avatar billede eksperten1 Nybegynder
24. marts 2003 - 13:00 #2
ole> Lad mig tilstå, jeg fatter minus (-)

Tanken var at brugeren kan vælge et enme i select_1, trykke på en "->>" knap og den fiser over i select_2. Når brugeren vælger et emne i select_2, kan man med en "Op" og en "Ned" knap flytte dem rundt.

Selvom jeg bryder samtlige regler nu !! Kan du på nogen måde overtales v.h.a. Whisky/Rødvin eller anden smiger til at lave en side der kan disse ting. ? (Uha farligt spørgsmål) Jeg er sagtens klar over at den skal være tilgængelig her på exp, men jeg står og skal bruge den funktion igår.

Anyhows, tak for dit svar som jeg fatter niente af.

mvh
Mark
Avatar billede olebole Juniormester
24. marts 2003 - 13:42 #3
<script type="text/JavaScript">
var actOpt = actOpt2 = false;
function skift(op_ned) {
    var s = document.f.s1;
    if (!actOpt || (op_ned<0 && actOpt==0) || (op_ned>0 && actOpt>=s.length-1) ) return;
    var tmpOptFra = new Array(s.options[actOpt].value, s.options[actOpt].text);
    var tmpOptTil = new Array(s.options[actOpt+op_ned].value, s.options[actOpt+op_ned].text);
    s.options[actOpt].value = tmpOptTil[0];
    s.options[actOpt].text = tmpOptTil[1];
    s.options[actOpt+op_ned].value = tmpOptFra[0];
    s.options[actOpt+op_ned].text = tmpOptFra[1];
    s.selectedIndex = actOpt = actOpt+op_ned;
}
function overfoer() {
    if (!actOpt2) return;
    var s = document.f.s1;
    var newOpt = new Option( actOpt2.text, actOpt2.value );
    s.options[s.length] = newOpt;
}
</script>
<form name="f">
<select name="s1" onchange="actOpt=this.selectedIndex">
    <option value="0">Bla 0</option>
    <option value="1">Bla 1</option>
    <option value="2">Bla 2</option>
    <option value="3">Bla 3</option>
    <option value="4">Bla 4</option>
</select>
<select name="s2" onchange="actOpt2=this.options[this.selectedIndex]">
    <option value="0">Alb 0</option>
    <option value="1">Alb 1</option>
    <option value="2">Alb 2</option>
    <option value="3">Alb 3</option>
    <option value="4">Alb 4</option>
</select>
</form>
<button onclick="overfoer()">Overfør</button><br><br>
<button onclick="skift(-1)">Op</button>
<button onclick="skift(1)">Ned</button>
Avatar billede eksperten1 Nybegynder
24. marts 2003 - 16:26 #4
Ole, du er en mand af få ord.:)
Kunne man forestille sig at den validerer om der eksisterer en magen til, sådan at man ikke kan få dubletter i "s2". ? Tilsvarende at de forsvinder fra "s1" når de overføres til "s2", og den anden vej, at tingene kan fjernes fra "s2" og rykkes tilbage til "s1".

Uhat en ønskeseddel.
Avatar billede olebole Juniormester
24. marts 2003 - 23:56 #5
Ja, det kunne man sagtens forestille sig.

Vedr. det at være en mand af få ord, kunne man så måske forestille sig, du stillede det spørgsmål, du gerne vil stille - i stedet for at lade ønskerne komme dryssende, så man skal sidde og skrive koden om og om og om og .....

Først lød spm'et på at flytte options rundt i én select.
Så skulle man kunne flytte options fra én select til en anden - og derefter flytte dem rundt i den anden.
Nu skal man så også validere, om de eksisterer i forvejen.

Jeg vil anse dit spørgsmål som mere end besvaret.
Avatar billede eksperten1 Nybegynder
25. marts 2003 - 10:02 #6
:) Ole, jeg beklager og jeg er meget mere end taknemmelig for din besvarelse.

mvh
Mark
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester