---
title: "visa/dölja"
type: "forum-thread"
url: "https://www.webforum.nu/amne/javascript/18375-visa-dölja"
topic: "JavaScript"
topic_url: "https://www.webforum.nu/amne/javascript"
author: "Bendro"
published: "2001-10-19T14:11:00.000Z"
updated: "2001-10-22T12:36:00.000Z"
replies: 8
views: 257
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/javascript/18375-visa-dölja"
---

# visa/dölja

## #1 — Bendro, 2001-10-19T14:11Z

Jag ber någon att ha förbarmande med mig. Jag har verkligen försökt, men av någon anledning verkar det vara stört omöljigt för mig att greppa logiken i JavaScript. Har försök leta i arkivet och bläddra i böcker, men lyckas inte få något att fungera. Antingen är jag för dum eller så är jag för trött (kan ju alltid skylla på att jag är så dum att jag jobbar fast jag är sjuk)...

Sitter med följande problem: har en sida som loopar ut bilder med tillhörande text. Användaren skall kunna ändra texten och flytta bilden till en annan kategori. Jag hade tänkt att användaren skulle få klicka i en checkbox om han önskar byta kategori, och i så fall skulle en select-lista visas med tillgängliga kategorier. 
Så det jag behöver lösa är hur jag styr ett lager med hjälp av en checkbox. Sedan vet jag inte om det kommer att fungera så som jag tänkt...d.v.s att select-listan blir inaktiverad om lagret är släckt. Är det inte så utan den ligger kvar och funkar som en slags hidden-fält så är det bara att lägga ner tanken.

Jo en sak till...det jag jobbar med är ett admin-verktyg som är anpassat för IE efter kundens önskemål, så för en gångs skull kan vi glömma allt vad Netscape heter.

Permalänk: https://www.webforum.nu/p/18375

## #2 — Jojoxx, 2001-10-20T13:20Z

Selectlistan kommer ju fortfarande att ligga kvar i formuläret, även om du inte visar den. Men du kan ju "nollställa" den, så att när du gömmer den återgår den till ex. första valet.

```
<script language="JavaScript" type="text/javascript">
function changeStyle(Id,Property,Value){
	if (document.all){
		eval('document.all[Id].style.'+Property+'="'+Value+'"');
	} else if (document.layers){
		eval('document.layers[Id].'+Property+'="'+Value+'"');
	} else if (document.getElementById){
		eval('document.getElementById(Id).style.'+Property+'="'+Value+'"');
	}
}
</script>
<form>
Visa/dölj : <input type="checkbox" name="bar" checked onClick="(this.checked)?changeStyle('foo','display','inline'):changeStyle('foo','display','none');"><br>
<select name="foo"><option>a<option>b</select>
</form>
```

Permalänk: https://www.webforum.nu/p/334980

## #3 — Bendro, 2001-10-22T08:57Z

Tackar..

Testade först i ett separat dokument och det funkade fint..fast jag skulle helst vilja att checkboxen inte var ikryssad från start och listan alltså inte synlig som default.

Men när jag väl la in koden i filen den skulle ligga fick jag helt plötsligt ett felmeddelande:

```
'document.all[...].style' är inte ett objekt
```

Det enda jag ändrat är namnet på select-listan. Annars har jag kopierat och klistrat in koden för att inte riskera stavfel etc. Varför funkar den bra i ett dokument och inte i ett annat??

Permalänk: https://www.webforum.nu/p/334981

## #4 — Jojoxx, 2001-10-22T10:36Z

För att ha listan dold från start:

```
<script language="JavaScript" type="text/javascript">
function changeStyle(Id,Property,Value){
if (document.all){
eval('document.all[Id].style.'+Property+'="'+Value+'"');
} else if (document.layers){
eval('document.layers[Id].'+Property+'="'+Value+'"');
} else if (document.getElementById){
eval('document.getElementById(Id).style.'+Property+'="'+Value+'"');
}
}
</script>
<form>
Visa/dölj : <input type="checkbox" name="bar" onClick="(this.checked)?changeStyle('foo','display','inline'):changeStyle('foo','display','none');"><br>
<select name="foo" style="display:none;"><option>a<option>b</select>
</form>
```

Ändrar du namnet på listan "foo" måste du även ändra i onClick-eventet för checkboxen. Även där har du 2 referenser till namnet; 'foo'.

Permalänk: https://www.webforum.nu/p/334982

## #5 — Bendro, 2001-10-22T10:49Z

sorry..det var jag som var otydlig. Jag hade givetvis bytt ut alla foo...

Test-filen funkar fint...samma fel i min applikation.

Permalänk: https://www.webforum.nu/p/334983

## #6 — Jojoxx, 2001-10-22T10:59Z

Kan du ge en länk till sidan slipper du posta hela koden här?

Permalänk: https://www.webforum.nu/p/334984

## #7 — Bendro, 2001-10-22T11:28Z

<http://www.sandobetong.se/admin/bildarkiv.asp>

Permalänk: https://www.webforum.nu/p/334985

## #8 — Bendro, 2001-10-22T11:41Z

Kom på vad som strular..jag loopar ju ut bilderna och lägger en select vid varje bild..alltså blir det flera select-listor med samma namn.
Testade att lägga in en räknare med ASP så det blev foo1, foo2 etc.. och då funkade det. Frågan är bara hur jag skall lyckas hämta upp rätt värde m.h.a request.
Skulle man vid submit lägga in värdet i en ny variabel t.ex?

Permalänk: https://www.webforum.nu/p/334986

## #9 — Bendro, 2001-10-22T12:36Z

Ville bara tacka för hjälpen och tala om att jag löst det. La en räknare i varje varv på loopen. Namnet på selecten blev sedan foo+värdet på räknaren. La även in värdet på räknaren i ett hidden fält så jag kunde återskapa namnet på nästa sida för requesten.

Permalänk: https://www.webforum.nu/p/334987

---

Tråden på webben: https://www.webforum.nu/amne/javascript/18375-visa-dölja
