Button, um Variable in Textfeld einzufügen, aber in form?

Ich finde, das ist schon eine gute Idee. Poste doch mal das HTML in der rechten Spalte mit den Elementen, um die es geht. Und das Javascript, was schon da ist.
 
So, nun aber.

Also, der Code im html für das Feld mit dem Zahlungseingang sieht so aus:
HTML:
<td bgcolor="#EFEFEF">Zahlungseingang:</td>
<td bgcolor="#EFEFEF">
                
<input type="text" style="width:120px; text-align:right;" id="zahl_euro" name="zahl_euro" value="0" onKeyUp="calc_status();">
                        
€&nbsp;&nbsp;&nbsp;&nbsp;&larr; Zahlung</td>

Der Code €&nbsp;&nbsp;&nbsp;&nbsp;&larr; Zahlung soll evtl. ersetzt werden mit einem Button, der die komplette offene Summe in das Feld links daneben einsetzt.

Die Funktion calc_status() sieht so aus:
Javascript:
var forder_euro = document.getElementById('forder_euro');
var zahl_euro = document.getElementById('zahl_euro');
var fieldrest_euro = document.getElementById('rest_euro');
    
fieldrest_euro.value = (!isNaN(parseFloat(forder_euro.value)) && !isNaN(parseFloat(zahl_euro.value))) ? (parseFloat(forder_euro.value) -  parseFloat(zahl_euro.value)).toFixed(2) : "";

Hier werden also die Felder aktualisiert, sobald eine Eingabe erfolgt.

Der Button, der die komplette Summe aus forder_euro in das Feld setzt, ist nun das Problem, denn das Ganze ist ja ein Formular, welches am Ende mit einem Button abgeschickt wird.
Damit der Button hier also nicht in das Formular an sich eingreift, müsste der nach meinem Verständnis mit im Javascript stehen, oder irre ich mich da?

Danke & Gruß,

Volker
 
Hmm... ich hänge fest....


Javascript:
<script type="text/javascript">
 
function insert_forder(){
    
    var forder_euro = document.getElementById('forder_euro');
    var zahl_euro = document.getElementById('zahl_euro');
    
    //alert("Der Klick auf den Button hat funktioniert!!");
    
    zahl_euro = forder_euro.value;
}
</script>
 
Mir scheint, das kann man relativ leicht zum Ziel führen:
insert_fordert passt im wesentlichen, nur hinter zahl_euro fehlt das value.
insert_forder musst Du als Eventhandler für die Zahlung registrieren.
Und Du musst calc_status in insert_forder aufrufen, um die weiteren Berechnungen zu machen.

(BTW: Das type="text/javascript" ist heute nicht mehr nötig.)

Code:
    <td bgcolor="#EFEFEF">Zahlungseingang:</td>
    <td bgcolor="#EFEFEF">

        <input type="text" style="width:120px; text-align:right;" id="zahl_euro" name="zahl_euro" value="0"
            onKeyUp="calc_status();">
        <span style="margin-left: 2em;" onclick="insert_forder();">&larr; Zahlung</span>
    </td>
    <script>
        function calc_status() {
            var forder_euro = document.getElementById('forder_euro');
            var zahl_euro = document.getElementById('zahl_euro');
            var fieldrest_euro = document.getElementById('rest_euro');
            fieldrest_euro.value = (!isNaN(parseFloat(forder_euro.value)) && !isNaN(parseFloat(zahl_euro.value))) ?
                (parseFloat(forder_euro.value) - parseFloat(zahl_euro.value)).toFixed(2) : "";
        }
        function insert_forder() {

            var forder_euro = document.getElementById('forder_euro');
            var zahl_euro = document.getElementById('zahl_euro');

            //alert("Der Klick auf den Button hat funktioniert!!");

            zahl_euro.value = forder_euro.value; // hier fehlte das "value" hinter dem "zahl_euro"

            // jetzt veranlassen wir die weiteren Berechnungen
            calc_status();
        }
    </script>
 
Danke Ulrich!

Ich bilde mir ein, ich hatte die Variante schon zahl_euro.value = forder_euro.value; schon ausprobiert, aber irgendwo muss ja was falsch gewesen sein.
Es funktioniert nun so!

Hab vielen Dank & ein schönes Wochenende!!!
 
Sicherlich kann man dass in CSS machen, aber zwingend notwendig ist das aus meiner Sicht nicht.
Wenn du natürlich keinen Wert auf einen guten HTML-Code legst, kann man diesen Käse durchaus so machen, auch wenn man damit jeglichen Standard missachtet. Lustig wird es aber, wenn du z.B. eine Farbe ändern willst. Per CSS eine Zeile ändern oder im HTML-Code 'zig Zeilen ändern. Aber ganz wie du willst, ist ja dein HTML-Code.
 
Zurück