Avatar billede dotcom1 Nybegynder
23. februar 2012 - 11:13 Der er 11 kommentarer og
1 løsning

Skjule én bestemt <option>

Hej.

Jeg har denne select:

<form name="search" id="myform" action="/index.html" method="post" id="level_search">
    <select size="1" name="searchselect" class="selectme" onchange="window.open(this.options[this.selectedIndex].value,'_self')">
    <option value="/?iso=dk&search_btn=true&search_job_level=xxxx">- Alle områder -</option>
      <option value="/?iso=dk&search_btn=true&search_job_level=30538"> Nedenstående skal ikke bruges!</option>
              <option value="/?iso=dk&search_btn=true&search_job_level=30539">Option 1</option>
              <option value="/?iso=dk&search_btn=true&search_job_level=30540" selected="selected">Option 2</option>
              <option value="/?iso=dk&search_btn=true&search_job_level=30552">Option 3</option>
              <option value="/?iso=dk&search_btn=true&search_job_level=32265">Option 4</option>
              <option value="/?iso=dk&search_btn=true&search_job_level=32267">Option 5</option>
              <option value="/?iso=dk&search_btn=true&search_job_level=32269">Option 6</option>
            </select>
</form>


Option nummer to:

<option value="/?iso=dk&search_btn=true&search_job_level=30538"> Nedenstående skal ikke bruges!</option>

- vil jeg gerne skjule. Hvordan kan man nemmest gøre det? Med noget innerHTML.replace, eller? (Har ikke mulighed for at gøre det serverside.)

Den vil altid have den tekst og value.

Mvh.
Avatar billede olebole Juniormester
23. februar 2012 - 11:17 #1
<ole>

var elmSel = document.getElementById("myform");
elmSel.getElementsByTagName("option")[1].style.display = "none";

/mvh
</bole>
Avatar billede olebole Juniormester
23. februar 2012 - 11:22 #2
- eller:

var elmSel = document.getElementById("myform"),
colOpts = elmSel.getElementsByTagName("option"),
sVal = "/?iso=dk&search_btn=true&search_job_level=30538";

for (var i=0,j=colOpts.length; i<j; i++) {
    if (colOpts[i]===sVal) {
        colOpts[i].style.display = "none";
        break;
    }
}
Avatar billede olebole Juniormester
23. februar 2012 - 11:23 #3
Vrøvl, Ole!

if (colOpts[i].value===sVal) {
Avatar billede olebole Juniormester
23. februar 2012 - 11:26 #4
- og som funktion:

function hideOptByVal(sVal) {
    var elmSel = document.getElementById("myform"),
    colOpts = elmSel.getElementsByTagName("option");
   
    for (var i=0,j=colOpts.length; i<j; i++) {
        if (colOpts[i]===sVal) {
            colOpts[i].style.display = "none";
            break;
        }
    }
}

hideOptByVal("/?iso=dk&search_btn=true&search_job_level=30538");
Avatar billede olebole Juniormester
23. februar 2012 - 11:27 #5
Copy/Paste-trolden driller vist! Du retter lige linjen i #3 igen  *D
Avatar billede olebole Juniormester
23. februar 2012 - 11:37 #6
Det skal lige siges, at den gemte OPTION jo stadig findes i SELECT'ens collection - den er blot ikke synlig. Du kan i stedet fjerne den permanent ved at udskifte:

colOpts[i].style.display = "none";

- med:

elmSel.removeChild(colOpts[i]);
Avatar billede dotcom1 Nybegynder
23. februar 2012 - 11:55 #7
Hej Ole.

Jeg er i sikre hænder, kan jeg se. :)

Jeg har brugt denne version:
<script type="text/javascript">
function hideOptByVal(sVal) {
    var elmSel = document.getElementById("myform"),
    colOpts = elmSel.getElementsByTagName("option");
 
    for (var i=0,j=colOpts.length; i<j; i++) {
        if (colOpts[i].value===sVal) {
            colOpts[i].style.display = "none";
            break;
        }
    }
}

hideOptByVal("/?iso=dk&search_btn=true&search_job_level=30538");
</script>


- skal den køres ved body onload="hideOptByVal()"?
Avatar billede dotcom1 Nybegynder
23. februar 2012 - 12:05 #8
Arh, jeg fik det til at virke. Tusind tak. :)
Går ud fra at du ikke vil have points...?
Avatar billede olebole Juniormester
23. februar 2012 - 12:06 #9
Ja, du må køre den lige, når du har brug for det. På onload, ved klik på en knap, eller hvad din saftige fantasi kan komme på af obskure situationer  =)
Avatar billede olebole Juniormester
23. februar 2012 - 12:07 #10
Selvtak - og du har helt ret. Du lægge bare selv et svar og accepterer det  =)
Avatar billede olebole Juniormester
23. februar 2012 - 12:08 #11
- og mine slave- og ståfajl er også helt gratis  :D
Avatar billede dotcom1 Nybegynder
23. februar 2012 - 12:15 #12
Hehe, glimragende. :-)
Takker og bukker.
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

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