• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

[FRAGE] Warum kann Funktion globale Variable nicht ändern?

FF2016

New member
Ich versuche im Moment eine Variable von einer Auswahlliste an ein JS-Script weiter zu geben. Das stark gekürzte Projekt sieht so aus:

HTML:
<!DOCTYPE HTML>
<html>
  <head>
    <title>Gestufte Auswahl</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <script type="text/javascript">
      bula = 0;
      function CheckAuswahl() {
        bula = document.f1.bundesland.selectedIndex; 
        alert(bula);
        return bula;
      }    
    </script>
  </head>
  
  <body>
    <form name="f1" action="auswahlanzeige2.php" method="post">
      <select size="" name="bundesland" onchange="CheckAuswahl();">
        <option value ="13">Bayern</option><br>
        <option value ="5">Berlin</option><br>
        <option value ="2">Brandenburg</option><br>
        <option value ="12">Bremen</option><br>
        <option value ="7">Hamburg</option><br>
        <option value ="14">Hessen</option><br>
      </select>  
    </form>
  <script type="text/javascript">
    document.write("<p>Der Index des gewählten Bundeslandes ist "+"<br>"+bula+"</p>");
  </script>    

  </body>
</html>
Das gewählte Bundesland wird mit dem alert angezeigt. Der dabei verwendete Wert ist der der Variablen "bula". Es handelt sich dabei aber offenbar um eine lokale Variable. Die globale Variable gleichen Namens wird nicht geändert.

Wir kann ich der globalen Variablen innerhalb der Funktion einen neuen Wert zuweisen?

Gruß

F.
 
Das gewählte Bundesland wird mit dem alert angezeigt. Der dabei verwendete Wert ist der der Variablen "bula". Es handelt sich dabei aber offenbar um eine lokale Variable.
nein, um eine globale und das ist schon mal schlecht. auf globale variablen sollte man verzichten und kann das auch immer.

Die globale Variable gleichen Namens wird nicht geändert.
doch. was vermutlich dein problem ist, du willst diese geänderte variable mit document write ins document schreiben. zu dem zeitpunkt, wo document write aber etwas ins html einfügt ist aber bula immer 0, weil die auswahl erst später getroffen wurde.
du musst wenn du die auswahl änderst den wert in den dom-tree einfügen. z.b. mit innerHTML wenn du html einfügen möchtest oder da es sich in deinem fall nicht um html handelt am besten mit textContent.
 
Zurück
Oben