Difference between revisions of "JavaScript 1 Document Objekt"

From Coders.Bay Wiki
Jump to navigation Jump to search
(Created page with "==Das Document Objekt== *Ist für die Erstellung von dynamischen Internetseiten enorm wichtig *Erlaubt es, auf alle einzelnen Bestandteile der Seite zuzugreifen *Erlaubt es,...")
 
 
(22 intermediate revisions by 2 users not shown)
Line 28: Line 28:
       /*
       /*
       document.body => greift auf die Elemente im Body zu
       document.body => greift auf die Elemente im Body zu
       firstElementChild => bezieht sich immer auf das erste Kind-Element (h1)
       firstElementChild => bezieht sich immer auf das erste Kind-Element (h1)
       nextElementSibling => bezeichnet das nachfolgende Geschwister-Element (h2)
       nextElementSibling => bezeichnet das nachfolgende Geschwister-Element (h2)
       innerHTML => greift auf Inhalt des angesprochenen Tags zu (Überschrift 2)
       innerHTML => greift auf Inhalt des angesprochenen Tags zu (Überschrift 2)
       Beispiel um das <i>-Tag anzusprechen:
       Beispiel um das <i>-Tag anzusprechen:
       document.body.firstElementChild.nextElementSibling.nextElementSibling.firstElementChild
       document.body.firstElementChild.nextElementSibling.nextElementSibling.firstElementChild
       */
       */
Line 59: Line 64:
       innerHTML ohne alert vorangestellt ändert den Inhalt des ausgewählten Tags =>
       innerHTML ohne alert vorangestellt ändert den Inhalt des ausgewählten Tags =>
       Überschrift 2 ändert sich zu neue Überschrift
       Überschrift 2 ändert sich zu neue Überschrift
       in diesem Fall, da es nur Text ist, der geändert wird ginge auch innerText
 
      statt innerHTML
       in diesem Fall, da es nur Text ist, sollte man statt .innerHTML .innerText oder .textContent verwenden.
       */
       */
     </script>
     </script>
Line 75: Line 80:
   </head>
   </head>
   <body>
   <body>
   <h1 id="ueberschrift1"></h1>
   <h1 id="heading1"></h1>
     <h2 id="ueberschrift2"></h2>
     <h2 id="heading2"></h2>
     <p id="absatz"></p>
     <p id="paragraph"></p>
     <script>
     <script>
       /*
       /*
       getElementById greift auf den Tag mit der entsprechenden ID zu
       getElementById greift auf den Tag mit der entsprechenden ID zu
       */
       */
       document.getElementById("ueberschrift1").innerText = "JavaScript ist cool";
       document.getElementById("heading1").innerText = "JavaScript ist cool";
       document.getElementById("ueberschrift2").innerText = "Seite mit generierten Inhalten";
       document.getElementById("heading2").innerText = "Seite mit generierten Inhalten";
       document.getElementById("absatz").innerHTML = "Hier steht ein Absatz mit einem" +
       document.getElementById("paragraph").innerHTML = "Hier steht ein Absatz mit einem" +
         " <strong>fett gedruckten</strong>Bereich.";
         " <strong>fett gedruckten</strong>Bereich.";
     </script>
     </script>
Line 107: Line 112:
   <title>Übungen</title>
   <title>Übungen</title>
</head>
</head>
<body> <input id="eingabefeld">
<body> <input id="input-field">
   <script>
   <script>
     // über value-Attribut lässt sich ein     
     // über value-Attribut lässt sich ein     
     // beliebiger Text in das Feld einfügen     
     // beliebiger Text in das Feld einfügen     
     document.getElementById("eingabefeld").value = "JavaScript Kurs";
     document.getElementById("input-field").value = "JavaScript Kurs";
   </script>
   </script>
</body>
</body>
Line 124: Line 129:
   <title>Übungen</title>
   <title>Übungen</title>
</head>
</head>
<body> <input id="eingabefeld">  
<body> <input id="input-field">  
   <!-- onclick-Funktion aktiviert die JS Funktion -->  
   <!-- onclick-Funktion aktiviert die JS Funktion -->  
   <button type="button" onclick="auslesen()">Weiter</button>
   <button type="button" onclick="readValue()">Weiter</button>
   <script>
   <script>
     function auslesen() {
     function readValue() {
       let inhalt = document.getElementById("eingabefeld").value;
       let inhalt = document.getElementById("input-field").value;
       alert(inhalt);
       alert(content);
     }
     }
   </script>
   </script>
Line 149: Line 154:
   <script>
   <script>
     // Programm fordert User auf einen Link einzugeben     
     // Programm fordert User auf einen Link einzugeben     
     let adresse = prompt("Gib eine Linkadresse ein.");     
     let adress = prompt("Gib eine Linkadresse ein.");     
     // eingegebener Link wird als href-Attribut in den <a> Tag geschrieben     
     // eingegebener Link wird als href-Attribut in den <a> Tag geschrieben     
     document.getElementById("link").href = adresse;   
     document.getElementById("link").href = adresse;   
     // eingegebener Link wird innerhalb der <a> Tags geschrieben   
     // eingegebener Link wird innerhalb der <a> Tags geschrieben   
     document.getElementById("link").innerHTML = adresse;
     document.getElementById("link").innerHTML = adress;
   </script>
   </script>
</body>
</body>
Line 196: Line 201:
<body>
<body>
   <form name="formular">  
   <form name="formular">  
     <select id="auswahl">
     <select id="selection-list">
       <option value="auswahl1">Wert 1</option>
       <option value="selection1">Wert 1</option>
       <option value="auswahl2">Wert 2</option>
       <option value="selection2">Wert 2</option>
       <option value="auswahl3">Wert 3</option>
       <option value="selection3">Wert 3</option>
     </select>
     </select>
   </form>
   </form>
   <script>
   <script>
    const selectionList = document.getElementById('selection-list');
     // Möglichkeit 1 um entsprechendes Optionsfeld auszuwählen     
     // Möglichkeit 1 um entsprechendes Optionsfeld auszuwählen     
     auswahl.selectedIndex = 2;     
     selectionList.selectedIndex = 2;     
     // Möglichkeit 2     
     // Möglichkeit 2     
     auswahl.options[2].selected = true;   
     selectionList.options[2].selected = true;   
     // Möglichkeit 3     
     // Möglichkeit 3     
     auswahl.value = "auswahl3";
     selectionList.value = "selection3";
   </script>
   </script>
</body>
</body>
Line 227: Line 233:
</head>
</head>
<body>
<body>
   <form name="formular">  
   <form name="form">  
     <input id="feld1" value="Formularfeld 1">
     <input id="field1" value="Form Field 1">
   </form>
   </form>
   <script>
   <script>
     let angezeigt = false;
     let isVisible = false;


     function nachricht() {
     function message() {
       if (!angezeigt) {
       if (!isVisible) {
         alert("Gib deinen Namen ein");
         alert("Gib deinen Namen ein");
         angezeigt = true;
         isVisible= true;
       }
       }
     }
     }
Line 244: Line 250:
     * Wenn Fokus entfernt wird, kommt es zum blur-Event     
     * Wenn Fokus entfernt wird, kommt es zum blur-Event     
     */
     */
     feld1.onfocus = nachricht;
     document.getElementById("field1").onfocus = message;
   </script>
   </script>
</body>
</body>
Line 260: Line 266:
</head>
</head>
<body>
<body>
   <form name="formular"> <input id="feld1">  
   <form name="form"> <input id="field1">  
     <button type="button">Eingabe</button>
     <button type="button">Eingabe</button>
   </form>
   </form>
   <script>
   <script>
     function nachricht() {
     function message() {
       if (feld1.value == "") {
       if (field1.value == "") {
         alert("Gib deinen Namen ein");
         alert("Gib deinen Namen ein");
       }
       }
Line 273: Line 279:
     * tritt die Fehlermeldung auf     
     * tritt die Fehlermeldung auf     
     */
     */
     feld1.onblur = nachricht;
     document.getElementById("field1").onblur = message;
   </script>
   </script>
</body>
</body>
Line 294: Line 300:
</head>
</head>
<body>
<body>
   <form name="formular">  
   <form name="form">  
     <input id="feld1">  
     <input id="field1">  
     <button type="button">Eingabe</button>
     <button type="button">Eingabe</button>
   </form>
   </form>
   <script>
   <script>
     function nachricht() {
     function message() {
       alert("Buchstabe eingegeben: " + feld1.value);
       alert("Buchstabe eingegeben: " + field1.value);
     }  
     }  
     /*     
     /*     
     * reagiert auf Eingabe in das Input Feld     
     * reagiert auf Eingabe in das Input Feld     
     */
     */
     feld1.oninput = nachricht;
     field1.oninput = message;
   </script>
   </script>
</body>
</body>
Line 320: Line 326:
<body>
<body>
   <form name="formular">  
   <form name="formular">  
     <p><input id="feld1" value="Formularfeld 1"> </p>
     <p><input id="field1" value="Formularfeld 1"> </p>
     <p><input id="feld2" value="Formularfeld 2"></p>  
     <p><input id="field2" value="Formularfeld 2"></p>  
     <button id="btn1" type="button">Feld 1 Fokus</button>  
     <button id="btn1" type="button">Feld 1 Fokus</button>  
     <button id="btn2" type="button">Feld 2 Fokus</button>
     <button id="btn2" type="button">Feld 2 Fokus</button>
Line 329: Line 335:
       // leert zuerst das Input Feld und  
       // leert zuerst das Input Feld und  
       //setzt dann den Fokus darauf         
       //setzt dann den Fokus darauf         
       feld1.value = "";         
       field1.value = "";         
       feld1.focus();     
       field1.focus();     
     }     
     }     
     function fokus2() {         
     function fokus2() {         
       feld2.value = "";         
       field2.value = "";         
       feld2.focus();     
       field2.focus();     
     }     
     }     
     btn1.onclick = fokus1;     
     btn1.onclick = fokus1;     
Line 346: Line 352:
<pre>
<pre>
<body>
<body>
   <form id="formular" action="fertig.html" method="GET" onsubmit="return auswerten()">
   <form id="form" action="evalData.html" method="GET" onsubmit="return eval()">
     <div class="form-row">  
     <div class="form-row">  
       <label for="inputname">Name</label>  
       <label for="inputname">Name</label>  
Line 356: Line 362:
     </div>
     </div>
     <div class="form-row">  
     <div class="form-row">  
       <label for="inputalter">Alter</label>  
       <label for="inputage">Alter</label>  
       <input id="inputalter" name="alter">  
       <input id="inputage" name="age">  
     </div>  
     </div>  
     <button type="submit">Absenden</button>
     <button type="submit">Absenden</button>
   </form>
   </form>
   <script>
   <script>
     function auswerten() {
     function eval() {
       if (inputname.value == "") {
       if (inputname.value == "") {
         alert("Gib einen Namen ein");
         alert("Gib einen Namen ein");
Line 373: Line 379:
         return false;
         return false;
       }
       }
       if (inputalter.value == "") {
       if (inputage.value == "") {
         alert("Gib ein Alter ein");
         alert("Gib ein Alter ein");
         inputalter.focus();
         inputage.focus();
         return false;
         return false;
       }
       }
       let zahl = true;
       let number = true;
       console.log(inputalter.value.length);
       console.log(inputage.value.length);
       for (let i = 0; i < inputalter.value.length; ++i) {
       for (let i = 0; i < inputage.value.length; ++i) {
         if (inputalter.value.charAt(i) < "0" ||
         if (inputage.value.charAt(i) < "0" ||
           inputalter.value.charAt(i) > "9") {
           inputage.value.charAt(i) > "9") {
           zahl = false;
           number= false;
         }
         }
       }
       }
       if (!zahl) {
       if (!zahl) {
         alert("Gib eine Zahl ein");
         alert("Gib eine Zahl ein");
         inputalter.focus();
         inputage.focus();
         return false;
         return false;
       }
       }
Line 417: Line 423:
   <button type="button" id="btn">Zur neuen Seite</button>
   <button type="button" id="btn">Zur neuen Seite</button>
   <script>
   <script>
     function laden() {  
     function loadPage() {  
       // Adresse der Seite ist unter location.href verfügbar         
       // Adresse der Seite ist unter location.href verfügbar         
       // hier wird der Besucher gleich auf die Seite         
       // hier wird der Besucher gleich auf die Seite         
Line 425: Line 431:
     }     
     }     
     document.getElementById("absatz").innerHTML = location.href;     
     document.getElementById("absatz").innerHTML = location.href;     
     btn.onmouseover = laden;
     btn.onmouseover = loadPage;
   </script>
   </script>
</body>
</body>
Line 434: Line 440:
<body>
<body>
   <form method="GET" action="js.html">  
   <form method="GET" action="js.html">  
     <input type="text" name="frage" placeholder="frag was">  
     <input type="text" name="question" placeholder="frag was">  
     <button type="submit">Abschicken</button>
     <button type="submit">Abschicken</button>
   </form>
   </form>
   <p id="absatz"></p>
   <p id="paragraph"></p>
   <script>
   <script>
     "use strict";  
     "use strict";  
     // für Formulare die mit GET-Methode abeschickt werden     
     // für Formulare die mit GET-Methode abeschickt werden     
     // ruft mit search-Attribut Teil der URL  
     // ruft mit search-Attribut Teil der URL  
     // mit Formularinhalten ab     
     // mit Formularinhalten ab
    
     let str = location.search;     
     let str = location.search;     
     // dann wird mit substr() das Fragezeichen entfernt  
     // dann wird mit substr() das Fragezeichen entfernt  
Line 448: Line 455:
     // das Fragezeichen steht immer an erster  
     // das Fragezeichen steht immer an erster  
     // Stelle deshalb substr(1)  
     // Stelle deshalb substr(1)  
     str = str.substr(1);  
     str = str.substr(1);  
     // In der URL sind einzelne Suchwörter durch das &-
     // In der URL sind einzelne Suchwörter durch das &-
     // Zeichen miteinander verbunden
     // Zeichen miteinander verbunden
     // diese voneinander trennen => split()-Methode  
     // diese voneinander trennen => split()-Methode  
     let arr = str.split('&');
     let arr = str.split('&');
     for (let i = 0; i < arr.length; i++) {
     for (let i = 0; i < arr.length; i++) {
       arr[i] = arr[i].split('=');
       arr[i] = arr[i].split('=');
     }
     }
     let inhalt = "";
     let content = "";
     for (let wert of arr) {
     for (let value of arr) {
       inhalt += wert[0] + ": " + wert[1] + "<br>";
       content += value[0] + ": " + value[1] + "<br>";
     }  
     }
    // decodeURIComponent wird benötigt um
     document.getElementById("paragraph").innerHTML = content;
    // zb das @ Zeichen richtig darzustellen   
     document.getElementById("absatz").innerHTML = decodeURIComponent(inhalt);
   </script>
   </script>
</body>
</body>
Line 481: Line 488:
     "use strict";
     "use strict";


     function tauschen() {
     function changeImage() {
       document.images[0].src = "bild2.jpg";
       document.images[0].src = "bild2.jpg";
     }
     }
     btn.onclick = tauschen;
     btn.onclick = changeImage;
   </script>
   </script>
</body>
</body>
Line 495: Line 502:
<body>
<body>
   <div id="div">
   <div id="div">
     <p id="absatz">Hier steht ein Absatz</p>
     <p id="paragraph">Hier steht ein Absatz</p>
   </div>
   </div>
   <button type="button" onclick="hintergrund()">Layout verändern</button>
   <button type="button" onclick="background()">Layout verändern</button>
   <script>
   <script>
     function hintergrund() {
     function background() {
       document.getElementById("absatz").style.background = "red";
       document.getElementById("paragraph").style.background = "red";
       document.getElementById("absatz").style.fontSize = "30px";
       document.getElementById("paragraph").style.fontSize = "30px";
       document.getElementById("absatz").style.color = "white";
       document.getElementById("paragraph").style.color = "white";
       document.getElementById("absatz").style.width = "150px";
       document.getElementById("paragraph").style.width = "150px";
       document.getElementById("absatz").style.border = "3px solid blue";
       document.getElementById("paragraph").style.border = "3px solid blue";
     }
     }
   </script>
   </script>
</body>
</body>
</pre>
</pre>
<blockquote>
Quelle: JavaScript
Programmieren für Einsteiger
ISBN: 978-3-96645-016-4
</blockquote>

Latest revision as of 12:21, 28 March 2024

Das Document Objekt[edit]

  • Ist für die Erstellung von dynamischen Internetseiten enorm wichtig
  • Erlaubt es, auf alle einzelnen Bestandteile der Seite zuzugreifen
  • Erlaubt es, Funktionsweisen zu verändern bei Buttons oder Formulare
    • Bsp.: document.write()
  • HTML-Struktur wird als DOM-Baum bezeichnet (Document Object Model -> Baumartige Struktur)
  • Ursprungselement = document-Element, enthält alle weiteren Bestandteile der Seite
  • Objekt document-Element = alle Bereiche, die innerhalb der <html> Tags stehen
<html>
  <head>
    <meta charset="UTF-8">
    <title>Übungen</title>
  </head>
  <body>
  <h1>Überschrift 1</h1>
    <h2>Überschrift 2</h2>
    <p>
      Absatz mit <i>einem kursiven Bereich</i>
      und einem <strong>fett</strong> gedruckten Wort
    </p>
    <script>
      "use strict";
      alert(document.body.firstElementChild.nextElementSibling.innerHTML);
      /*
      document.body => greift auf die Elemente im Body zu

      firstElementChild => bezieht sich immer auf das erste Kind-Element (h1)

      nextElementSibling => bezeichnet das nachfolgende Geschwister-Element (h2)

      innerHTML => greift auf Inhalt des angesprochenen Tags zu (Überschrift 2)

      Beispiel um das <i>-Tag anzusprechen:

      document.body.firstElementChild.nextElementSibling.nextElementSibling.firstElementChild
      */
    </script>
  </body>
</html>

Auf Inhalte des DOM-Baums zugreifen[edit]

<html>
  <head>
    <meta charset="UTF-8">
    <title>Übungen</title>
  </head>
  <body>
  <h1>Überschrift 1</h1>
    <h2>Überschrift 2</h2>
    <p>
      Absatz mit <i>einem kursiven Bereich</i>
      und einem <strong>fett</strong> gedruckten Wort
    </p>
    <script>
      "use strict";
      document.body.firstElementChild.nextElementSibling.innerHTML = "neue Überschrift";
      /*
      innerHTML ohne alert vorangestellt ändert den Inhalt des ausgewählten Tags =>
      Überschrift 2 ändert sich zu neue Überschrift

      in diesem Fall, da es nur Text ist, sollte man statt .innerHTML .innerText oder .textContent verwenden.
      */
    </script>
  </body>
</html>

Auf einzelne Elemente der Seite gezielt zugreifen[edit]

<html>
  <head>
    <meta charset="UTF-8">
    <title>Übungen</title>
  </head>
  <body>
  <h1 id="heading1"></h1>
    <h2 id="heading2"></h2>
    <p id="paragraph"></p>
    <script>
      /*
      getElementById greift auf den Tag mit der entsprechenden ID zu
      */
      document.getElementById("heading1").innerText = "JavaScript ist cool";
      document.getElementById("heading2").innerText = "Seite mit generierten Inhalten";
      document.getElementById("paragraph").innerHTML = "Hier steht ein Absatz mit einem" +
        " <strong>fett gedruckten</strong>Bereich.";
    </script>
  </body>
</html>

Weitere Gestaltungsmöglichkeiten[edit]

  • .getElementById(): Zugriff auf ein Element mit spezifischer ID
  • .getElementsByClassName(): Zugriff auf alle Elemente einer CSS Klasse (gibt ein Array-ähnliches Objekt zurück)
  • .getElementsByTagName(): Zugriff auf alle Elemente eines bestimmten HTML Tags (gibt ein Array-ähnliches Objekt zurück)
  • .querySelector(): kombiniert die Funktionalitäten von den oberen Methoden. Praktisch: bei Änderungen
    • mit CSS-Klasse:.querySelector(".klassenName")
    • mit ID:.querySelector("#idName")
    • mit Tag:.querySelector("tagName")

Beispiel 1:[edit]

<html>
<head>
  <meta charset="UTF-8">
  <title>Übungen</title>
</head>
<body> <input id="input-field">
  <script>
    // über value-Attribut lässt sich ein     
    // beliebiger Text in das Feld einfügen    
    document.getElementById("input-field").value = "JavaScript Kurs";
  </script>
</body>
</html>

Beispiel 2:[edit]

<html>
<head>
  <meta charset="UTF-8">
  <title>Übungen</title>
</head>
<body> <input id="input-field"> 
  <!-- onclick-Funktion aktiviert die JS Funktion --> 
  <button type="button" onclick="readValue()">Weiter</button>
  <script>
    function readValue() {
      let inhalt = document.getElementById("input-field").value;
      alert(content);
    }
  </script>
</body>
</html>

Beispiel 3:[edit]

<html>
<head>
  <meta charset="UTF-8">
  <title>Übungen</title>
</head>
<body>
  <p><a id="link"></a></p>
  <script>
    // Programm fordert User auf einen Link einzugeben    
    let adress = prompt("Gib eine Linkadresse ein.");    
    // eingegebener Link wird als href-Attribut in den <a> Tag geschrieben    
    document.getElementById("link").href = adresse;   
    // eingegebener Link wird innerhalb der <a> Tags geschrieben   
    document.getElementById("link").innerHTML = adress;
  </script>
</body>
</html>

Formulare mit JavaScript bearbeiten[edit]

Status einer Checkbox verändern[edit]

<html lang="de">
<head>
  <meta charset="UTF-8">
  <title>Übungen</title>
</head>
<body>
  <form name="formular"> 
    <input name="feld1" value="Formularfeld 1"> 
    <input name="feld2" value="Formularfeld 2"> 
    <input name="feld3" type="checkbox"> 
  </form>
  <script>
    // Navigation über DOM-Baum um die Checkbox zu aktivieren    
    // mit document.forms sind alle Formulare zugänglich, die auf der    
    // Seite enthalten sind    
    // .checked kann true oder false gesetzt werden    
    document.forms.formular.elements.feld3.checked = true; 
  </script>
</body>
</html>

Optionsfeld auswählen[edit]

<html lang="de">
<head>
  <meta charset="UTF-8">
  <title>Übungen</title>
</head>
<body>
  <form name="formular"> 
    <select id="selection-list">
      <option value="selection1">Wert 1</option>
      <option value="selection2">Wert 2</option>
      <option value="selection3">Wert 3</option>
    </select>
  </form>
  <script>
    const selectionList = document.getElementById('selection-list');
    // Möglichkeit 1 um entsprechendes Optionsfeld auszuwählen    
    selectionList.selectedIndex = 2;    
    // Möglichkeit 2    
    selectionList.options[2].selected = true;   
    // Möglichkeit 3    
    selectionList.value = "selection3";
  </script>
</body>
</html>

Events für Formulare[edit]

  • Wenn ein Formularfeld angesteuert wird, erhält es Fokus, dann tritt das focus-event ein.
  • Verliert das Formularfeld diesen Fokus (man wechselt zB. auf eine anders Feld), dann tritt das blur-event ein
  • Beide Events sind sehr wichtig für die Barrierefreiheit einer Website

Beispiel für focus[edit]

<html lang="de">
<head>
  <meta charset="UTF-8">
  <title>Übungen</title>
</head>
<body>
  <form name="form"> 
    <input id="field1" value="Form Field 1">
  </form>
  <script>
    let isVisible = false;

    function message() {
      if (!isVisible) {
        alert("Gib deinen Namen ein");
        isVisible= true;
      }
    }
    /*
    * Wenn ein Event auf Seite fokussiert wird, 
    * tritt das focus-Event ein    
    * Wenn Fokus entfernt wird, kommt es zum blur-Event    
    */
    document.getElementById("field1").onfocus = message;
  </script>
</body>
</html>

Beispiel für blur[edit]

<!DOCTYPE html>
<html lang="de">
<head>
  <meta charset="UTF-8">
  <title>Übungen</title>
</head>
<body>
  <form name="form"> <input id="field1"> 
    <button type="button">Eingabe</button>
  </form>
  <script>
    function message() {
      if (field1.value == "") {
        alert("Gib deinen Namen ein");
      }
    } 
    /*    
    * Wenn der Input verlassen wird    
    * tritt die Fehlermeldung auf    
    */
    document.getElementById("field1").onblur = message;
  </script>
</body>
</html>

Weitere wichtige Events[edit]

  • cut
  • copy
  • paste
    • Werden ausgelöst wenn Anwender Inhalt des Feldes ausschneiden, kopieren oder einfügen möchte
  • submit
    • Wird ausgelöst, wenn submit-Button gedrückt wird um Formular abzuschicken
    • Häufig im Einsatz um Formular zu validieren vor dem abschicken
<html lang="de">
<head>
  <meta charset="UTF-8">
  <title>Übungen</title>
</head>
<body>
  <form name="form"> 
    <input id="field1"> 
    <button type="button">Eingabe</button>
  </form>
  <script>
    function message() {
      alert("Buchstabe eingegeben: " + field1.value);
    } 
    /*    
    * reagiert auf Eingabe in das Input Feld    
    */
    field1.oninput = message;
  </script>
</body>
</html>

Spezielle Methoden für Formularelemente[edit]

<html lang="de">
<head>
  <meta charset="UTF-8">
  <title>Übungen</title>
</head>
<body>
  <form name="formular"> 
    <p><input id="field1" value="Formularfeld 1"> </p>
    <p><input id="field2" value="Formularfeld 2"></p> 
    <button id="btn1" type="button">Feld 1 Fokus</button> 
    <button id="btn2" type="button">Feld 2 Fokus</button>
  </form>
  <script>
    function fokus1() {
      // leert zuerst das Input Feld und 
      //setzt dann den Fokus darauf        
      field1.value = "";        
      field1.focus();    
    }    
    function fokus2() {        
      field2.value = "";        
      field2.focus();    
    }    
    btn1.onclick = fokus1;    
    btn2.onclick = fokus2;
  </script>
</body>
</html>

Eingaben der Formularfelder überprüfen – Anwendungsbeispiel[edit]

<body>
  <form id="form" action="evalData.html" method="GET" onsubmit="return eval()">
    <div class="form-row"> 
      <label for="inputname">Name</label> 
      <input id="inputname" name="name"> 
    </div>
    <div class="form-row"> 
      <label for="inputmail">E-Mail</label> 
      <input id="inputmail" name="mail"> 
    </div>
    <div class="form-row"> 
      <label for="inputage">Alter</label> 
      <input id="inputage" name="age"> 
    </div> 
    <button type="submit">Absenden</button>
  </form>
  <script>
    function eval() {
      if (inputname.value == "") {
        alert("Gib einen Namen ein");
        inputname.focus();
        return false;
      }
      if (!inputmail.value.includes('@')) {
        alert("Gib eine Mailadresse ein");
        inputmail.focus();
        return false;
      }
      if (inputage.value == "") {
        alert("Gib ein Alter ein");
        inputage.focus();
        return false;
      }
      let number = true;
      console.log(inputage.value.length);
      for (let i = 0; i < inputage.value.length; ++i) {
        if (inputage.value.charAt(i) < "0" ||
          inputage.value.charAt(i) > "9") {
          number= false;
        }
      }
      if (!zahl) {
        alert("Gib eine Zahl ein");
        inputage.focus();
        return false;
      }
      return true;
    }
  </script>
</body>

Vollständige Liste an vordefinierten Objekten in JS[edit]

https://www.w3schools.com/jsref/

Location[edit]

  • Das location-Objekt ist vom document-Objekt abgeleitet
    • vollständige Bezeichnung deshalb: window.document.location
    • der Zusatz window ist aber nicht notwendig
  • Das Objekt nimmt die URL der Seite auf und ermöglicht es, sie zu beeinflussen
    • Beispiele:
      • location.host => so lässt sich der Hostname abrufen
      • location.protocol => das verwendete Protokoll
      • reload() => lädt die Seite neu


location.href[edit]

<body>
  <p id="absatz"></p>
  <button type="button" id="btn">Zur neuen Seite</button>
  <script>
    function loadPage() { 
      // Adresse der Seite ist unter location.href verfügbar        
      // hier wird der Besucher gleich auf die Seite        
      // weitergeleitet ohne das dieser einen Link klickt        
      // es reicht mit der Maus über den Button zu fahren        
      location.href = "stop.html";    
    }    
    document.getElementById("absatz").innerHTML = location.href;    
    btn.onmouseover = loadPage;
  </script>
</body>

location[edit]

<body>
  <form method="GET" action="js.html"> 
    <input type="text" name="question" placeholder="frag was"> 
    <button type="submit">Abschicken</button>
  </form>
  <p id="paragraph"></p>
  <script>
    "use strict"; 
    // für Formulare die mit GET-Methode abeschickt werden    
    // ruft mit search-Attribut Teil der URL 
    // mit Formularinhalten ab
   
    let str = location.search;    
    // dann wird mit substr() das Fragezeichen entfernt 
    // das zu beginn der Zeichenkette steht    
    // das Fragezeichen steht immer an erster 
    // Stelle deshalb substr(1) 

    str = str.substr(1); 
    // In der URL sind einzelne Suchwörter durch das &-
    // Zeichen miteinander verbunden
    // diese voneinander trennen => split()-Methode 

    let arr = str.split('&');
    for (let i = 0; i < arr.length; i++) {
      arr[i] = arr[i].split('=');
    }
    let content = "";
    for (let value of arr) {
      content += value[0] + ": " + value[1] + "<br>";
    }  
    document.getElementById("paragraph").innerHTML = content;
  </script>
</body>

Images[edit]

  • Informationen über enthaltene Bilder abrufen oder verändern
  • document.images => enthält alle Bilder, die auf der Seite enthalten sind
  • document.images[0] => auf einzelne Bilder zugreifen (Position im Array angeben)
  • document.images.length => gibt an wie viele Bilder auf der Seite sind
  • Höhe und Breite auslesen mit: heigth und length
<body>
  <img src="beispiel.jpg">
  <button type="button" id="btn">Bild tauschen</button>
  <script>
    "use strict";

    function changeImage() {
      document.images[0].src = "bild2.jpg";
    }
    btn.onclick = changeImage;
  </script>
</body>

Style[edit]

  • CSS Styles verändern und setzen
  • Syntax: element.style.cssPropery(backGround, fontSize,..)
<body>
  <div id="div">
    <p id="paragraph">Hier steht ein Absatz</p>
  </div>
  <button type="button" onclick="background()">Layout verändern</button>
  <script>
    function background() {
      document.getElementById("paragraph").style.background = "red";
      document.getElementById("paragraph").style.fontSize = "30px";
      document.getElementById("paragraph").style.color = "white";
      document.getElementById("paragraph").style.width = "150px";
      document.getElementById("paragraph").style.border = "3px solid blue";
    }
  </script>
</body>