Avatar billede d.kryger Praktikant
25. maj 2009 - 13:31 Der er 4 kommentarer og
1 løsning

Styling af text-felt afhængig af valg i select

Hej ekspeter.

Jeg har en funktion på min side som sådan set virker fint. Når man vælger andet end det første valg i select'en, så disabler den tekst-feltet. Ligesom det skal være. MEN...

Stylingen af feltet efterlader en del (i hvert fald i IE8), for når man har valgt "Afsnit 1", så bliver feltet lige pludselig 3-dementionelt, hvilket det ikke var inden! Og hvis man vælger "Vælg afsnit" igen, så bliver baggrunden bare hvid igen, og det er stadig 3-dementionelt. Hvordan kan jeg slippe af med det?

Det jeg ønsker at blot at tekst-feltet bliver disabelt og at der bliver en svar grå baggrund, så man kan se at man ikke kan indtaste noget i feltet.

Min kode ser sådan ud:

<select size="1" style="width: 200px;" name="destination" onchange="a=this.form.search;if(this.selectedIndex<1){a.disabled=false;a.style.background='#FFFFFF';}else{a.value='';a.disabled=true;a.style.background='#CCCCCC'}">
<option value="0">Vælg afsnit</option>
<option value="1">Afsnit 1</option>
<option value="2">Afsnit 2</option>
</select> eller <input type="text" name="search" style="width: 200px;" value="">
Avatar billede ebusiness Nybegynder
25. maj 2009 - 14:07 #1
Det må vist afskrives som en IE8 fejl, din kode forekommer korrekt, og virker hvor jeg har afprøvet den.

I øvrigt burde det være overflødigt at sætte baggrundsfarven, browseren skulle gerne selv markere visuelt at feltet er sat ud af funktion.
Avatar billede d.kryger Praktikant
26. maj 2009 - 12:35 #2
Jeg synes ny heller ikke at det ser ud helt efter hensigen i Firefox 3... Kan det passe?

Findes der andre måder at deaktiverer et felt på hvis der er valgt den første løsning i en dropdown?
Avatar billede ebusiness Nybegynder
26. maj 2009 - 13:47 #3
Jeg tror ikke at der er andre måder, men hvis du mistænker dynamisk brug af disabled for at forårsgae en fejl så kan du lave to felter, et aktiveret og et deaktiveret og så skifte imelllem hvilket de blive vist.
Avatar billede d.kryger Praktikant
26. maj 2009 - 14:47 #4
Ja, det kunne man jo gøre, men hvordan gør man så det :)
Kan du hjælpe med det?
Avatar billede ebusiness Nybegynder
26. maj 2009 - 15:30 #5
Ok, nu har jeg lavet det, men jeg tror såmænd godt at du kan beholde disable tilgangen. search er et reserveret ord, så muligvis bliver det ikke altid fortolket som elementet med name="search". Skift search ud med hvad som helst andet og jeg vil tro at det virker.

Anyway, sådan her laver man en falsk disable funktion:

<form>
<select size="1" style="width: 200px;" name="destination" onchange="if(this.selectedIndex<1){this.form.searcha.style.display='';this.form.searchdis.style.display='none'}else{this.form.searcha.style.display='none';this.form.searchdis.style.display='';this.form.searchdis.value=this.form.searcha.value};">
<option value="0">Vælg afsnit</option>
<option value="1">Afsnit 1</option>
<option value="2">Afsnit 2</option>
</select> eller <input type="text" name="searcha" style="width: 200px;" value=""><input type="text" name="searchdis" style="width: 200px;display:none;" disabled="disabled" value="">
</form>
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