Prosty kalkulator js

0

Witam mam problem , robię prosty kalkulator w js niestety po kliknięciu w przycisk dodawanie nie odsyła odpowiedzi do diva wynik. Coś jest z liczba1 i liczba2 ponieważ jak np dam wynik = 2 to mi odsyła do diva wynik.

<!DOCTYPE html>
<html lang="pl">
<head>
    <meta charset="UTF-8">
    <title>Kalkulator</title>
</head>
<body>
    <table>
        <tr>
            <td><input type="text" id="liczba1"></td>
            <td><input type="text" id="liczba2"></td>
            <td><div id="wynik"></div></td>
        </tr>
        <tr>
            <td><input type="submit" value="Dodawanie" onclick="dodawanie()"></td>
            <td><input type="submit" value="Odejmowanie" onclick="odejmowanie()"></td>
        </tr>
    </table>
    <script type="text/javascript" src="kalkulator.js"></script>
</body>
</html>
var liczba1 = document.getElementById("liczba1").value;
var liczba2 = document.getElementById("liczba2").value;
var wynik = "";

function dodawanie() {
    wynik = liczba1 + liczba2;
    document.getElementById("wynik").innerHTML = wynik;
}
0

Przenieś definicje liczba1 i liczba2 do funkcji, teraz to działa tak:
strona się wczytuje
do liczba1 przypisujesz wartość inputa (który jest pusty)
robisz dodawanie na wartościach które są zapisane w zmiennych a nie na nowych pobranych z pól tekstowych.

2

Gdy masz

var liczba1 = document.getElementById("liczba1");

to liczba1 jest referencją do obiektu. Jeśli zmieniają się właściwości tego obiektu (w tym value) to cały czas masz dostęp do tych aktualnych.

Edit: chyba warto napisać trochę więcej, bo nie dalej niż tydzień temu było wałkowane to samo
Przykład:

var obj1 = {prop1: 'hello', prop2: 'world'}
var obj2 = obj1
obj2.prop1 = 'goodbye'
/// obj1 to teraz `{ prop1: 'goodbye', prop2: 'world' }`

Dzieje się tak, bo obj1 i obj2 wskazują na ten sam obiekt w pamięci.
Ale teraz zróbmy coś takiego:

var str = obj1.prop1;
str = 'hello';
/// obj1 to nadal  `{ prop1: 'goodbye', prop2: 'world' }

Jasne?

0

Dodatkowo wypadałoby użyć tutaj parseInt bo dla wartości 1 i 1 suma wyjdzie nam 11 :D

1 użytkowników online, w tym zalogowanych: 0, gości: 1