Button fügt Zahl in Text Feld ein?

1 Antwort

Vom Fragesteller als hilfreich ausgezeichnet

Du willst bestimmt einen Taschenrechner machen

Dann lieber so

<body>

<div id='Div123'> </div> 

<table>     
 <tr>       
     <td onclick='addNumber(7)'>  7
     <td onclick='addNumber(8)'>  8
     <td onclick='addNumber(9)'>  9
</td>                            
 </tr> 

 <tr>       
     <td onclick='addNumber(4)'>  4
 </td>                            
 </tr> 
usw...
</table> 

</body> 
<script> 
function addNumber(zahl){
document.getElementById('div123').innerHTML += zahl 
}
</script>

ODER 

wenn du es mit einem 
<input id='inputfeld' type='Number'> machst 
dann musst du document.getElementById('inputfeld').value machen

also Divs Spans usw. mit Innerhtml

input felder mit zahlen value auch wenn das nicht bei VS Code vorgeschlagen wird

HalloWelt964  18.11.2021, 16:39

Keine ahnung ob ich das jetzt richtig gemacht habe am handy aber wenn nicht kannst du mir nochmal schreiben

0
HalloWelt964  18.11.2021, 18:37
@hilfebruacher

Ja die id vom Div oben hab ich mit einem großen D geschrieben statt mit kleinem d wie in der Funktion addNumber.

(Der Script teil muss auch im Body/head sein oder verlinkt werden)

und die <td> wurden bei 7, 8 nicht geschlossen.

Darum funktioniert das nicht.

0
regex9  18.11.2021, 16:52

Da nur einzelne Zahlen, also Textknoten eingetragen werden sollen, eignet sich das textContent-Property besser, als innerHTML.

Eine Addition, sofern du das vorhattest (immerhin schreibst du von einem Taschenrechner) findet bei deinen Zuweisungen nicht statt. Der Inhalt wird nur nacheinander angehängt. Eine Konversion in numerische Typen wäre erst notwendig.

const output = document.getElementById("div123");
output.textContent += parseInt(output.textContent) + zahl; // or parseFloat for decimal calculation
1
HalloWelt964  18.11.2021, 17:05
@regex9

er wollte halt was mit document.innerhtml weil er vielleicht noch anfänger ist.

achso Nein das sollte keine Addition sein sondern nur ein kleiner anfang falls er vor hat einen Taschenrechner zu machen aber hatte keine lust mehr auf dem Smartphone zu tippen 😂

wenn er wirklich nur einen button klicken will und die Zahl im Input feld sein soll reicht ja auch == anstatt +=

<body>
<input id=„inputfeld“ type=„number“> 
<button onclick=„test()“> ... </button>

<script>
     function test(){
document.getElementById(„inputfield“).value ==     1;}

} 
</script>
</body>
0
regex9  18.11.2021, 17:50
@HalloWelt964

Auf diese Weise würde ein Vergleich durchgeführt werden, keine Zuweisung (=).

Dein Beispielsnippet hat nun mehrere Fehler. Abgesehen von den falschen Anführungszeichen gibt es eine schließende geschweifte Klammer zu viel und der Wert des id-Attributs müsste zu inputfield geändert werden. 😉

1
HalloWelt964  18.11.2021, 17:55
@regex9

Oh dann nur = und "" oder ''

ja ist schwierig auf dem Handy xD

aber man versteht es ungefähr als anfänger

0
HalloWelt964  18.11.2021, 17:59
@HalloWelt964

css padding margin backgroundcolor ... und <br> muss er noch machen sonst sieht das ganze merkwürdig aus.
dann fehlt halt nurnoch der +-/x button, eval button zum ausrechnen und löschen mit .slice

0