Für if else muss die Seite immer neu geladen werden

  • Hallo Leute,


    ich fange gerade erst an mit html und javascript und bewege mich daher noch sehr unbeholfen auf dem Gebiet. Mein erster Versuch ist eine Funktion, die etwas (mathematisch nicht unbedingt sinnvolles) berechnet und zwar je nach Wert der Eingabe, also mit if und else if. Nun ist es aber so, dass ich die Seite (Browser) immer neu laden muss, sonst gibt er mir auch bei der Eingabe eines neuen Wertes das "alte" Statement. Was kann ich tun? Oder ist das immer so?


    Hier mal der Code. Kann man bestimmt auch besser schreiben. Ist der querySelector hier eigentlich wirklich die besser Wahl? Es ginge ja auch getElementbyId.


    <!DOCTYPE html>
    <html>

    <head>

    <meta charset="utf-8">

    </head>

    <body>

    <div>Bitte geben Sie eine Zahl größer gleich 0 ein: <br/>

    <input type="number" id="number" value=""></input>

    <button onclick=mult(n)>Zahl mal 200</button>

    </div> </body>

    <script type="text/javascript">

    var n = parseInt(document.querySelector("#number").value);

    function mult(n) {

    console.log(n);

    if(n<0) {

    window.alert('Fehler');

    } else if(n == 0 || n == 1) {

    window.alert('1');

    } else if(n>2){

    nneu=n*200; window.alert(nneu);

    }

    }

    </script>
    </html>


    (Aus meinem Oder wird ein weinendes Smiliy - keine Ahnung wie ich das umstelle)

    Danke schonmal

    RK

  • das mit den relod verstehe ich nicht ,weil wenn man eine Seite neu laden tut sollte das Script und das Document wieder neu starten und dann auch keine Ausgabe mehr machen .(so wie ch dich gerade verstanden habe ).

    Aber gut . Erstens dein Code würde so laufen.

    Trotzdem solltest du dir vieleicht mal https://www.html-seminar.de/javascript-addEventListener.htm

    anschauen weil eventListener doch besser und schöner sind:)

  • Hi,

    danke für die Antwort basti1012. AddEventListener sind mir allerdings leider noch zu schwer momentan :(


    Naja, ich will auch gleichzeitig if und else üben, dass das Ergebnis nicht stimmt ist mir schon klar. Das war ja auch nicht die Frage.


    Schöne Grüße

    RK

  • Hallo Rosy Kunigunde.

    Zu deinem Problem: Der Wert ändert sich nicht, weil er beim Start des Scripts einmalig angefragt wird. (var n = parseInt(document.querySelector("#number").value);) Und beim Aufruf der Funktion mult() nicht erneut abgefragt wird.