Fehler bei der ausgabe HTML & JS?

2 Antworten

Vom Beitragsersteller als hilfreich ausgezeichnet

Zuerst ein paar Hinweise zu Fehlern in deinem Markup:

1) Der Paragraph gehört nicht in einen Button. Nimm ein span-Element stattdessen oder einfach gar nichts.

<button ...>
  <i class="material-icons">add</i>
  <span><var></var></span>
</button>

Anschließend könnte man eigentlich noch den Sinn des Elements selbst hinterfragen, da es keinen Textinhalt hat.

2) Es gibt kein Attribut liste für das var-Element.

Zu deinem Problem:

Du holst dir nur das HTML Element, nicht aber den Wert seines value-Attributs, an dem du ja eigentlich interessiert bist.

So wäre es richtig:

var liste = document.getElementById('liste1').value;

Bzw. besser:

const product = document.getElementById('liste1').value;

Da du den Wert nicht nachträglich verändern möchtest, kann er auch als konstant markiert werden. Und eine Liste beinhaltet der Wert ja auch nicht, wenn ich mir die Labelbeschriftung einmal anschaue. Da wäre die Bezeichnung product wohl passender.

Dir sollte des Weiteren klar sein, dass du mit:

document.write(liste)

das Dokument komplett überschreibst. Besser wäre es, sich ein HTML-Element für die Ausgabe anzulegen und in dieses den Wert zu schreiben.

HTML-Element:

<p id="output"></p>

JavaScript:

document.getElementById("output").innerText = product;

PS.: Wenn ein Formular beim Absenden an dieselbe Adresse leiten soll, lasse das action-Attribut einfach weg. Der Wert wird intern korrekt gesetzt.

kurze frage

      var liste = document.getElementById('liste1')
      document.write(liste)

gibt genau das was du möchtest auch aus , nämlich das objekt

[object HTMLInputElement]

oder wolltest du den Wert ?


m1000x 
Beitragsersteller
 25.04.2021, 17:12

ich möchte das es das ausgibt was man eingibt

TechPech1984  25.04.2021, 17:14
@m1000x

ja dann musst du auch den wert nehmen und nicht das objekt .

such dir ein vernünftiges tutorial .