Avatar billede krogstrup Nybegynder
20. marts 2007 - 21:15 Der er 7 kommentarer

Hjælp til at få script til også at virke i Firefox

Jeg benytter nedenstående script til at ændre rækkefølgen på forskellige emner (f.eks. sider i en menu). Det foregår ved at emnerne indlæses i en SELECT box med en højde tilsvarende det antal elementer der indlæses. Herefter kan man markere et emne i listen og ved tryk på en knap forneden vælge om emnet skal rykkes op eller ned i listen. Scriptet fungerer fint i IE, men jeg har netop opdaget at det ikke fungerer i FF.

Kan nogen hjælpe med at få det til også at virke i FF ?

function moveup(list) {
    var daflag = false
    for (var i = 0; i <= list.options.length-1; i++) {
        if (!list[i].selected) {
            daflag = true
        }
        if (list[i].selected && daflag) {
            list.insertBefore(list[i],list[i-1])
        }
    }
}

function movedown(list) {
    var daflag = false
    for (var i = list.options.length-1; i >= 0; i--) {
        if (!list[i].selected) {
            daflag = true
        }
        if (list[i].selected && daflag) {
            list.insertBefore(list[i],list[i+2])
        }
    }
}

function submitForm() {
    var list = document.form.list;
    var theList = "&";
    var count = 0;
    for (i = 0; i <= list.options.length-1; i++) {
        count = count + 1
        theList += "ID" + list.options[i].value + "=" + count;
        if (i != list.options.length-1) theList += "&";
    }
    location.href = document.form.action + theList;
}
Avatar billede krogstrup Nybegynder
20. marts 2007 - 21:18 #1
Her er selve formularen:
***********************************''

<form action="" method="post" name="form">

<select name="list" size="5" multiple>
<option value="1">Forside</option>
<option value="2">Kundeservice</option>
<option value="3">Betingelser</option>
<option value="4">Om butikken</option>
<option value="5">Kontakt os</option>
</select>

<br><br>

<a href="java script:moveup(this.form.list);">RYK OP</a>

<br><br>

<a href="java script:movedown(this.form.list);">RYK NED</a>

<br><br>

<a href="java script:submitForm();">SEND</a>

</form>
Avatar billede crazysnap Seniormester
20. marts 2007 - 21:38 #2
Hej krogstrup,

FireFox klager over dine 'this.form.list' argumenter til javascript metoderne. Så hvis du i stedet giver din liste et 'id' og bruger getElementById, vil det virke fint i FF også. Ændringen ses nedenfor :)



<form action="" method="post" name="form">

<select id="lst" name="list" size="5">
    <option value="1">Forside</option>
    <option value="2">Kundeservice</option>
    <option value="3">Betingelser</option>
    <option value="4">Om butikken</option>
    <option value="5">Kontakt os</option>
</select>

<br><br>

<a href="java script:moveup(document.getElementById('lst'));">RYK OP</a>

<br><br>

<a href="java script:movedown(document.getElementById('lst'));">RYK NED</a>

<br><br>

<a href="java script:submitForm();">SEND</a>

</form>


Mvh.

- Snap :)
Avatar billede crazysnap Seniormester
20. marts 2007 - 21:48 #3
Hej igen,


Glemte lige at fortælle dig at hvis du stadig vil gøre brug af 'name' attributen på formen kan du stadig godt tilgå form'en i FF på nedenstående måde. Personligt kan jeg dog bedst lige at bruge unikke id'er på elementer.


Så i stedet for:


java script:moveup(this.form.list);


kan du skrive:


java script:moveup(document.forms['form'].list);


Dette er også browser uafhængigt og virker dermed også fint i FF.



Mvh.

- Snap :)
Avatar billede krogstrup Nybegynder
20. marts 2007 - 22:02 #4
Virker perfekt - TUSIND tak for hjælpen :-)

Smider du et svar ?
Avatar billede crazysnap Seniormester
20. marts 2007 - 22:21 #5
Det var så lidt! :)

Her har du et svar og tak for pointene!


Mvh.


- Snap
Avatar billede olebole Juniormester
21. marts 2007 - 14:06 #6
<ole>

- og forklaringen:

'this.form' refererer til den omkransende form, når udtrykket anvendes i en event-handler på et formelement.

Et link er ikke et form-element - uagtet, det måtte ligge indlejret i en form - hvorfor udtrykket ikke kan bruges på et link  ;o)

/mvh
</bole>
Avatar billede olebole Juniormester
21. marts 2007 - 14:10 #7
"java script:moveup(document.forms['form'].list);
Dette er også browser uafhængigt og virker dermed også fint i FF."

Det er dog ikke uafhængigt af markup-versionen - og kan ikke bruges under XHTML  =)
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