Gunnar Bittersmann: Es soll eine js-Variable an ein html-Input-Feld als Vorbelegung übergeben werden.

Beitrag lesen

problematische Seite

@@Peter

Im Bereich <head> ermittle ich mit javascript das Datum, welches ich vorbelegen möchte.

Das ist nicht gut, weil es das Rendern der Seite verzögert. Scripte sind am Ende des body gut aufgehoben.

Anbei mein html-Seitencode:

    <body>
       <label for="date">Von :</label>
       <input type="date" name="day_from" value=**`<script type="text/javascript">document.write(date_start);</script>`** />
       <label for="time">Von :</label>
       <input type="time" name="time_from" value="00:00:00" /><br>
    </body>

Die Eingabefelder sind nicht in einem Formular? Warum nicht?

Und sie haben keine zugeordnete Beschriftung. Die Angabe im for-Attribut des label-Elements bezieht sich auf eine gleichnamige ID. Solche fehlen bei dir.

Und zweimal „Von“ ist auch keine aussagekräftige Beschriftung. Da müsste schon „Datum“ bzw. „Uhrzeit“ mit dabeistehen.

Sinnvoll wäre wohl eine Gruppierung in einem fieldset mit legend:

<fieldset>
  <legend>Startzeitpunkt</legend>
  <label for="date">Datum</label>
  <input id="date type="date" name="day_from"/>
  <label for="time">Uhrzeit</label>
  <input id="time type="time" name="time_from" value="00:00:00"/>
</fieldset>

Mein Problem ist, wie bekomme ich die js-Variable dem html-input-value zugegwiesen.

Du musst dir das Eingebefeld im DOM raussuchen:

const dateInputElement = document.querySelector('[name="day_from"]');

oder – wenn das Element jetzt eine ID hat:

const dateInputElement = document.querySelector('#date');

Wenn das Eingabefeld in einem Formular wäre, müsste nicht erst gesucht werden; dann wäre es schon als document.forms.<Name des Formulars>.elements.day_from verfügbar.

Dem Element weist du den Wert als value-Eigenschaft zu:

dateInputElement.value = date_start;

🖖 Живіть довго і процвітайте

--
„Im Vergleich mit Elon Musk bei Twitter ist ein Elefant im Porzellanladen eine Ballerina.“
— @Grantscheam auf Twitter