Rolf B: javascript value auslesen und setzen

Beitrag lesen

Hallo Ingrid,

zu ergänzen wäre noch, dass Du nicht gezwungen bist, das input-Feld im Form herauszusuchen. Wenn Button und Input immer beisammen liegen, und gemeinsam in einem Container stehen der kein weiteres input-Element enthält, kann man auch das Event-Objekt verwenden, das bei einem Klick entsteht. Mal angenommen, die beiden stehen in einer table cell:

<td>
<input type='text' name='aktMenge[3]' value='47,11'>
<button type='button' name='zubuchen[3]' onclick='zubuchen(event)'> + </button>
</td>

Entweder so (und in den Klammern MUSS das Wort event stehen!) oder du registrierst das Element über addEventListener - was aber mutmaßlich erstmal eine Lernhürde für Dich ist.

Du kannst dann deine zubuchen-Funktion so schreiben:

function zubuchen(event) {
   if (event.target.tagName != "BUTTON") return;   /* Nur Klicks auf BUTTON verarbeiten */
   var input = event.target.parentElement.querySelector("input");
   /* input verweist jetzt auf das input-Element */
}

d.h. du navigierst über das DOM eine Ebene nach oben (parentElement, also das td Element) und suchst Dir dann das passende input-Element heraus. Deswegen mein Vorschlag, dass nur das input und der button in diesem Container stehen, damit die Suche nach dem Input leichter fällt.

Sowas geht auch mit addEventListener. Du würdest nur auf dem form einen click-Handler registrieren. Jegliche click-Events im Form blubbern im DOM nach oben und gelangen zum Form (sofern Du das nicht explizit verhindest). Dort kannst Du dann abfragen, ob es ein Zubuchen-Button ist (z.B.: ist der tagName=="BUTTON" und beginnt das name-Attribut mit "zubuchen"), und mittels event.target hat Du sofort den Button, der das Event ausgelöst hat.

Rolf

--
sumpsi - posui - clusi