Avatar billede superraider Nybegynder
22. januar 2005 - 16:52 Der er 14 kommentarer og
1 løsning

formular indhold genereret af JS

jeg har fælgende kode der laver indhold til formular
function foedsdagSelect(startAar) {
    var opt, sd, sm, sy;
    sd = d.getElementById("selD");
    sm = d.getElementById("selM");
    sy = d.getElementById("selY");
    for ( i=1; i<32; i++ ) {
        opt = d.createElement("OPTION");
        opt.value = (i<10)? "0"+i : i;
        opt.innerHTML = i;
        sd.appendChild(opt);
    }
    for ( i=1; i<13; i++ ) {
        opt = d.createElement("OPTION");
        opt.value = (i<10)? "0"+i : i;
        opt.innerHTML = i;
        sm.appendChild(opt);
    }
    for ( i=startAar-100; i<startAar+1; i++ ) {
        opt = d.createElement("OPTION");
        opt.value = opt.innerHTML = i;
        if (i == startAar-20) opt.selected = true;
        sy.appendChild(opt);
    }
}

<tr><td>Fødselsdag:</td><td><select  class="form" id="selD" style="width:51px"></select>&nbsp;<select  class="form" id="selM" style="width:51px"></select>&nbsp;<select class="form" id="selY" style="width:65px"></select></td></tr>



I hver af de options vil jeg gerne have inført class="form"
alså
<option class="form">1</option>
osv.  hvordan for jeg det ind i javascriptet.
Avatar billede softspot Forsker
22. januar 2005 - 18:10 #1
Prøv evt.:

opt.className = "form"
Avatar billede olebole Juniormester
22. januar 2005 - 19:47 #2
<ole>

Hvilket formål skulle der være med at sætte samme klasse på en select og dens options?

/mvh
</bole>
Avatar billede superraider Nybegynder
23. januar 2005 - 01:15 #3
det er fordi, at hvis jeg har baggrunds farven til sort, så virker det kun hvis alle options har class=form, og så angiver jeg også størrelsen af formen i class=form.

håber det besvare dit spørgsmål ole,
Avatar billede superraider Nybegynder
23. januar 2005 - 01:17 #4
for ( i=1; i<32; i++ ) {
        opt = d.createElement("OPTION");
        opt.value = (i<10)? "0"+i : i;
        opt.className = "form"
        opt.innerHTML = i;
        sd.appendChild(opt);
    }

det virkede ikke
Avatar billede superraider Nybegynder
23. januar 2005 - 01:37 #5
løsningen er
opt.setAttribute("class", "Form");
Avatar billede softspot Forsker
23. januar 2005 - 01:42 #6
option-objektet har en egenskab der hedder className, så det burde virke.

Et skud i tågen:
Det kan være, der er et problem med at sætte denne egenskab inden option-objektet er knyttet til en select-kontrol (jeg kan ikke lige selv komme i tanke om hvorfor det skulle være sådan, men man kan aldrig vide), så derfor vil jeg foreslå at du prøver at gennemløbe select-kontrollens options efter initiering og sætter className på det tidspunkt.
Avatar billede softspot Forsker
23. januar 2005 - 01:43 #7
OK, den nåede jeg ikke lige at få med den sidste kommentar :)

Fedt du fandt en løsning!
Avatar billede superraider Nybegynder
23. januar 2005 - 02:30 #8
jeg ville egentlig gerne høre lidt mere om det du snakkede om, hvordan kan jeg løbe alle optionsne igenne efter de er lavet og give dem className=form
Avatar billede olebole Juniormester
23. januar 2005 - 02:32 #9
Man kan også bare bruge CSS, som det er tænkt:

.mySelect option {
  background-color: black;
  color: yellow;
}

<select class="mySelect" ...
Avatar billede softspot Forsker
23. januar 2005 - 02:38 #10
olebole > du har altså de bedste løsninger ;)

superraider > hvis du ikke vil bruge olebole's forslag (anbefalet herfra også), kan du jo gennemløbe options i en select således:

for(var i=0; i<sel.options.length; i++) {
  sel.options[i].className = "form";
}
Avatar billede olebole Juniormester
23. januar 2005 - 02:38 #11
... og den bør naturligvis se sådan ud:

.mySelect, .mySelect option {
  background-color: black;
  color: yellow;
}
Avatar billede superraider Nybegynder
23. januar 2005 - 03:04 #12
er godt klar over det du skriver olebole,  problemmet ligger i at jeg lejer med
fraven: transparent;
Hvilket den godt kan finde ud af i input felter, hvis baggrunden er sort.

når jeg så laver en select efterfulgt af options, så bliver alle disse options bare hvide hvis jeg ikke angiver class="form" i alle options.

men jeg tror bare jeg laver det sådan at de er sorte, for jeg kan ikke få det andet til at virke.
Avatar billede olebole Juniormester
23. januar 2005 - 03:11 #13
Baggrundsfarven 'transparent' giver ikke rigtig mening på en select - eller en option  :)
Avatar billede superraider Nybegynder
23. januar 2005 - 12:59 #14
noop, det er det jeg har fundet ud af
Avatar billede olebole Juniormester
23. januar 2005 - 23:05 #15
;o) - en select er et temmelig specielt element.
Bl.a. popup-objektet (selve dropdown listen) gør, at konstruktionen af elementet - i de lag, der ligger under dem, vi normalt koder i - er forskellig fra de andre HTML-elementer.
Det er også det, der gør, at en select ikke tager imod ret meget CSS - og at den befinder sig på et andet z-niveau og således 'brænder igennem' et absolut placeret HTML-element (f.eks. et div), der forsøges placeret ovenpå en select.
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