---
title: "Select och lager"
type: "forum-thread"
url: "https://www.webforum.nu/amne/javascript/140477-select-och-lager"
topic: "JavaScript"
topic_url: "https://www.webforum.nu/amne/javascript"
author: "Asa"
published: "2006-01-07T12:25:07.000Z"
updated: "2006-01-07T15:27:42.000Z"
replies: 10
views: 378
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/140477-select-och-lager"
---

# Select och lager

## #1 — Asa, 2006-01-07T12:25Z

Har en selectruta där jag listar olika namn. Varje namn har ett värde och vill ha så när man väljer namnet med ex värdet 1 så skall ett lager (\<div\>) komma fram nedanför. Hur skriver man sådant? Har sökt men hittar inte.. Vet ej vad jag skall söka på.

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

## #2 — Peter S, 2006-01-07T13:14Z

Exempel:

```
<script>
function showLayer(sel){
  var opts = sel.options,
      len  = opts.length,
      cur  = opts[sel.selectedIndex];

  for (var i = 0; i < len; ++i){
    var elm = document.getElementById("selLayer" + opts[i].value);

    if (elm){
      if (opts[i] == cur){
	elm.style.display = "block";
      } else {
	elm.style.display = "none";
      }
    }
  }
}
</script>

<select onchange="showLayer(this)">
  <option value="">-----------</option>
  <option value="1">1</option>
  <option value="2">2</option>
</select>

<div id="selLayer1" style="display:none">1</div>
<div id="selLayer2" style="display:none">2</div>
```

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

## #3 — Asa, 2006-01-07T13:20Z

Supertack! FUnkade precis som jag ville!

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

## #4 — Asa, 2006-01-07T13:23Z

Kompletterande fråga:
Kan man få det att visa två lager vid val i listrutan? Testade men fick bara framena lagret. Skall ha samma lagernamn!

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

## #5 — Peter S, 2006-01-07T13:47Z

Då får vi byta ut id mot t.ex. class, eftersom ett id måste vara unikt:

```
<script>
function showLayer(sel){
  var divs = document.getElementsByTagName("div"),
      dLen = divs.length;

  for (var i = 0; i < dLen; ++i){
    if (divs.item(i).className && new RegExp("^selLayer" + sel.options[sel.selectedIndex].value + "$").test(divs.item(i).className)){
      divs.item(i).style.display = "block";
    } else {
      divs.item(i).style.display = "none";
    }
  }
}
</script>

<select onchange="showLayer(this)">
  <option value="">-----------</option>
  <option value="1">1</option>
  <option value="2">2</option>
</select>

<div class="selLayer1" style="display:none">1</div>
<div class="selLayer1" style="display:none">1</div>
<div class="selLayer2" style="display:none">2</div>
```

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

## #6 — Asa, 2006-01-07T13:49Z

Återigen tack :)

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

## #7 — Peter S, 2006-01-07T13:51Z

Vassego!  :)

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

## #8 — Asa, 2006-01-07T14:07Z

Sen en sista fråga hoppas jag! Om jag väljer dessa värdern så sidan laddas om vill jag att ex värdet 1 är valt och då skall lagret visas. Hur gör man detta?

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

## #9 — Peter S, 2006-01-07T14:10Z

```
window.onload = function(){
  showLayer(document.forms["namn_på_formulär"].elements["namn_på_select"]);
}
```

  :)

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

## #10 — Asa, 2006-01-07T14:55Z

Hmm, jag vet att när värdet är 1 så skall lagret synas. Kan jag skriva så gär då?

```
<script>
window.onload = function(){
  showLayer('1');
}
</script>
```

Var skall koden ligga på sidan? Nåt mer man skall lägga in? Jag fåt det inte att fungera så den visar det efter sidomladdning med ett formulär.

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

## #11 — Peter S, 2006-01-07T15:27Z

Så här får du göra:

```
<script>
function showLayer(){ ... }

window.onload = function(){
  var sel = document.forms["namn_på_formulär"].elements["namn_på_select"];

  if (sel.options[sel.selectedIndex].value == 1){
    showLayer(sel);
  }
}
</script>
```

Dessutom upptäckte jag några rester från det första kodförslaget, så jag har uppdaterat den senaste versionen.

  :)

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

---

Tråden på webben: https://www.webforum.nu/amne/javascript/140477-select-och-lager
