Avatar billede learner Praktikant
24. september 2004 - 17:25 Der er 13 kommentarer og
1 løsning

Jeg vil vælge alle i en select.

Hej, jeg har dette script og jeg vil gerne lave en knap og et ekstra script, som kan vælge alle på en gang!

function copy_placeid(fromObject,toObject) {
    for (var i=0, l=fromObject.options.length;i<l;i++) {
        if (fromObject.options[i].selected)
            addOption(toObject,fromObject.options[i].text,fromObject.options[i].value);
    }
    for (var i=fromObject.options.length-1;i>-1;i--) {
        if (fromObject.options[i].selected)
            deleteOption(fromObject,i);
    }
}

function deleteOption(object,index) {
    object.options[index] = null;
}

function addOption(object,text,value) {
    var defaultSelected = true;
    var selected = true;
    var optionName = new Option(text, value, defaultSelected, selected)
    object.options[object.length] = optionName;
}

Jeg kunne forestille mig at det let kan laves :-)

Her er starten :-)

function copy_all_placeid(fromObject,toObject){

}

Glæder mig!
Avatar billede olebole Juniormester
24. september 2004 - 18:37 #1
<ole>

<script type="text/JavaScript">
function mySelect() {
    var opts = document.getElementById("bla").options
    for ( i=0; i<opts.length; i++ ) {
        opts[i].selected = true;
    }
}
</script>

<button onclick="mySelect()">TEST</button><br><br>

<select multiple id="bla">
    <option value="1">En</option>
    <option value="2">To</option>
    <option value="3">Tre</option>
    <option value="4">Fire</option>
</select>

/mvh
</bole>
Avatar billede learner Praktikant
24. september 2004 - 21:59 #2
Jeg tror lige jeg bør forklare lidt mere...

Der er tale om at man vælger i en selectbox og så smider javascript det over i en anden selectbox. Senere bliver der så lavet en tekststreng hvor value'erne bliver sat ind i en række med ¤ imellem hver, men det er en længere historie!

Så når jeg skriver 'vælge alle', så mener jeg mere præcist at flytte alle over i den anden selectbox. derfor funktion(fra_selectname,til_selectname)

Her er lidt af mit kode: (kortet gevaldigt ned!)
<span class="littlesmaller" onClick="copy_all_placeid(placeid_at_vaelge,viser_valgte_placeid)" style="cursor:hand">alle</span>

<select multiple size="4" name="placeid_at_vaelge" style="width:99%" ondblclick="copy_Selected_placeid(placeid_at_vaelge,viser_valgte_placeid)">
</select>

<select multiple name="viser_valgte_placeid" ondblClick="copy_Selected_placeid(viser_valgte_placeid,placeid_at_vaelge)">
</select>
<input type="hidden" name="placeid_valgt">


Jeg havde tænkt at man kan benytte dette og bare ændre lidt, så den flytter alle options i stedet for den/de valgte options:

function copy_all_placeid(fromObject,toObject) {
    for (var i=0, l=fromObject.options.length;i<l;i++) {
        if (fromObject.options[i].selected)
            addOption(toObject,fromObject.options[i].text,fromObject.options[i].value);
    }
    for (var i=fromObject.options.length-1;i>-1;i--) {
        if (fromObject.options[i].selected)
            deleteOption(fromObject,i);
    }
}

Er det ik bare noget med at skrive '.all' et sted eller måske ændre i denne:
for (var i=0, l=fromObject.options.length;i<l;i++)

eller i denne:
for (var i=fromObject.options.length-1;i>-1;i--)

Mange TAK!
Avatar billede learner Praktikant
25. september 2004 - 12:03 #3
måske kan man kombinere dit script med mit???

noget lignende:

function copy_all_placeid(fromObject,toObject) {

    // først vælges alle i fromObject!
    var opts = document.fromObject.options
    for ( i=0; i<opts.length; i++ ) {
        opts[i].selected = true;
    }

    // De er alle valgt og flyttes nu!
    for (var i=0, l=fromObject.options.length;i<l;i++) {
        if (fromObject.options[i].selected)
            addOption(toObject,fromObject.options[i].text,fromObject.options[i].value);
    }
    for (var i=fromObject.options.length-1;i>-1;i--) {
        if (fromObject.options[i].selected)
            deleteOption(fromObject,i);
    }
}


Men der er helt sikkert fejl i det jeg har lavet herover... Jeg er ik så god til det endnu :o)

Men kan det ik lade sig gøre ca på den måde???

Michael :o)
Avatar billede learner Praktikant
26. september 2004 - 13:09 #4
Hallooooo???? :o)

Nogen der vil hjælpe mig?
Avatar billede roenving Novice
26. september 2004 - 14:19 #5
function copy_all_placeid(fromObject,toObject){
    for (var i=0, l=fromObject.options.length;i<l;i++) {
            addOption(toObject,fromObject.options[i].text,fromObject.options[i].value);
    }
    for (var i=fromObject.options.length-1;i>-1;i--) {
            deleteOption(fromObject,i);
    }

}
Avatar billede learner Praktikant
26. september 2004 - 14:22 #6
Ser helt rigtigt ud, jeg prøver det lige :o) taaaak
Avatar billede learner Praktikant
26. september 2004 - 14:43 #7
Øh, jeg tror ik det virker, for det er fuldstændig magen til det originale!

Den vælger kun én linie! og jeg vil gerne vælge/flytte alle linier på én gang!

Derfor tænkte jeg at sætte  dette ind måske:
// Der vælges alle i fromObject!
var opts = document.fromObject.options
for ( i=0; i<opts.length; i++ ) {
    opts[i].selected = true;
}

Men jeg forstår ik rigtigt at tilpasse det!


lidt som her:
function copy_all_placeid(fromObject,toObject){

    var opts = document.fromObject.options
    for ( i=0; i<opts.length; i++ ) {
        opts[i].selected = true;
    }

    for (var i=0, l=fromObject.options.length;i<l;i++) {
            addOption(toObject,fromObject.options[i].text,fromObject.options[i].value);
    }
    for (var i=fromObject.options.length-1;i>-1;i--) {
            deleteOption(fromObject,i);
    }

}


Kan det lade sig gøre?
Eller skal jeg gøre noget helt andet?

:o)
Avatar billede learner Praktikant
26. september 2004 - 14:49 #8
Ups, jeg var vist lige hurtig nok der....

stop lige et øjeblik, jeg tror sq det virker!

Øjeblik!
Avatar billede learner Praktikant
26. september 2004 - 14:49 #9
Er det rigtigt at du blot har pillet denne linie ud:
if (fromObject.options[i].selected)
Avatar billede roenving Novice
26. september 2004 - 14:50 #10
Jeg har bare fjernet de linjer, hvor den testede om optionen var selected, så den bare tager alle !-)
Avatar billede learner Praktikant
26. september 2004 - 14:51 #11
Ja, det havde jeg ik set, floooovt :-(

sorry!

Men jeg tester det med det samme! :o)
Avatar billede learner Praktikant
26. september 2004 - 15:13 #12
Smid et kææææmpe svar!

Det virker bare for godt, det er jeg mega glad for! :o}

Tusind tak igen!

Michael
Avatar billede roenving Novice
26. september 2004 - 15:17 #13
Velbekomme '-)

-- og så må du jo til at rode lidt rundt i Fri debat, Sitevurdering m.m. for at få samlet nogle point sammen (se en rimelig god liste her: http://expfaq.1go.dk/?id=32#ikke_flere_point !-)
Avatar billede roenving Novice
26. september 2004 - 15:43 #14
Tak for point ;~}
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