Wie wähle ich programmatisch eine HTML-Option mit JavaScript aus?

Lesezeit: 4 Minuten

Benutzer-Avatar
Frühstück

Ich habe Optionsmenü wie folgt:

<form name="AddAndEdit">
   <select name="list" id="personlist">
      <option value="11">Person1</option>
      <option value="27">Person2</option>
      <option value="17">Person3</option>
      <option value="10">Person4</option>
      <option value="7">Person5</option>
      <option value="32">Person6</option>
      <option value="18">Person7</option>
      <option value="29">Person8</option>
      <option value="28">Person9</option>
      <option value="34">Person10</option>
      <option value="12">Person11</option>
      <option value="19">Person12</option>
   </select>
</form>

Und jetzt möchte ich die ausgewählte Option ändern, indem ich eine href verwende. Zum Beispiel:

<a href="https://stackoverflow.com/questions/10911526/javascript:void(0);"
  onclick="document.getElementById('personlist').getElementsByTagName('option')[11].selected = 'selected';">change</a>

Aber ich möchte die Option mit auswählen value=11 (Person1)nicht Person12.

Wie ändere ich diesen Code?

Benutzer-Avatar
Nein

Tools als reiner JavaScript-Code für den Umgang mit Selectbox:

Grafisches Verständnis:

Bild – A

Geben Sie hier die Bildbeschreibung ein


Bild – B

Geben Sie hier die Bildbeschreibung ein


Bild – C

Geben Sie hier die Bildbeschreibung ein

Aktualisiert – 25. Juni 2019 | Geiger DEMO

JavaScript-Code:

/**
 * Empty Select Box
 * @param eid Element ID
 * @param value text
 * @param text text
 * @author Neeraj.Singh
 */
function emptySelectBoxById(eid, value, text) {
    document.getElementById(eid).innerHTML = "<option value="" + value + "">" + text + "</option>";
}


/**
 * Reset Select Box
 * @param eid Element ID
 */

function resetSelectBoxById(eid) {
    document.getElementById(eid).options[0].selected = 'selected';
}


/**
 * Set Select Box Selection By Index
 * @param eid Element ID
 * @param eindx Element Index
 */

function setSelectBoxByIndex(eid, eindx) {
    document.getElementById(eid).getElementsByTagName('option')[eindx].selected = 'selected';
    //or
    document.getElementById(eid).options[eindx].selected = 'selected';
}


/**
 * Set Select Box Selection By Value
 * @param eid Element ID
 * @param eval Element Index
 */
function setSelectBoxByValue(eid, eval) {
    document.getElementById(eid).value = eval;
}


/**
 * Set Select Box Selection By Text
 * @param eid Element ID
 * @param eval Element Index
 */
function setSelectBoxByText(eid, etxt) {
    var eid = document.getElementById(eid);
    for (var i = 0; i < eid.options.length; ++i) {
        if (eid.options[i].text === etxt)
            eid.options[i].selected = true;
    }
}


/**
 * Get Select Box Text By ID
 * @param eid Element ID
 * @return string
 */

function getSelectBoxText(eid) {
    return document.getElementById(eid).options[document.getElementById(eid).selectedIndex].text;
}


/**
 * Get Select Box Value By ID
 * @param eid Element ID
 * @return string
 */

function getSelectBoxValue(id) {
    return document.getElementById(id).options[document.getElementById(id).selectedIndex].value;
}

  • Tolles Beispiel, wie man mit einem Select mit reinem Javascript interagiert!

    – Herr GT

    26. März 2014 um 13:49 Uhr

  • Link zu “Fiddler Demo” ergibt jetzt 404/Page Not Found 🙁

    – Genki

    11. August 2018 um 4:47 Uhr

  • Die Frage ist “Wie ändere ich eine HTML-ausgewählte Option mit JavaScript?”. Sie kopieren einfach ein Stück Code und fügen es ein, ohne nichts zu beantworten.

    – Thomas

    22. Juni 2019 um 17:43 Uhr


  • Oder, ohne Rückfrage, eine Menge unnötigen Overhead sparen, document.querySelector('#personlist').value=10; .

    – Manngo

    26. März 2020 um 9:25 Uhr

  • Diese Frage bezieht sich NICHT auf JQuery.

    – gouessej

    15. Oktober 2021 um 8:12 Uhr

Benutzer-Avatar
Ronnie Royston

mySelect.value = myValue;

Woher mySelect ist Ihr Auswahlfeld, und myValue ist der Wert, auf den Sie ihn ändern möchten.

  • Warum haben nicht alle darüber abgestimmt, ist das ein neues Feature? Ich muss jedoch nur aktuelle Browser unterstützen, also mache ich trotzdem weiter.

    – Ant

    14. November 2018 um 11:17 Uhr

  • Ich hatte immer die Vorstellung, dass du das nicht kannst, also habe ich es einfach ignoriert. Aber als ich diese Antwort gesehen habe, habe ich es versucht, und siehe da, es funktioniert genau wie Eingaben. Das muss die richtige Antwort sein. +1

    – Jaden Baptista

    22. März 2021 um 20:52 Uhr

Benutzer-Avatar
Kaspinos

Sie können das DOM-Attribut select.options.s selectedIndex auch wie folgt ändern:

function selectOption(index){ 
  document.getElementById("select_id").options.selectedIndex = index;
}
<p>
<select id="select_id">
  <option selected>first option</option>
  <option>second option</option>
  <option>third option</option>
</select>
</p>
<p>
  <button onclick="selectOption(0);">Select first option</button>
  <button onclick="selectOption(1);">Select second option</button>
  <button onclick="selectOption(2);">Select third option</button>
</p>

  • Warum haben nicht alle darüber abgestimmt, ist das ein neues Feature? Ich muss jedoch nur aktuelle Browser unterstützen, also mache ich trotzdem weiter.

    – Ant

    14. November 2018 um 11:17 Uhr

  • Ich hatte immer die Vorstellung, dass du das nicht kannst, also habe ich es einfach ignoriert. Aber als ich diese Antwort gesehen habe, habe ich es versucht, und siehe da, es funktioniert genau wie Eingaben. Das muss die richtige Antwort sein. +1

    – Jaden Baptista

    22. März 2021 um 20:52 Uhr

Benutzer-Avatar
Tarikul Islam

Es ist ein alter Beitrag, aber wenn jemand immer noch nach einer Lösung für diese Art von Problem sucht, hier ist, was ich mir ausgedacht habe:

<script>
  document.addEventListener("DOMContentLoaded", function(e) {
    document.forms['AddAndEdit'].elements['list'].value = 11;
  });
</script>

1010420cookie-checkWie wähle ich programmatisch eine HTML-Option mit JavaScript aus?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy