Mathematisches Ergebnis hochzählen und insgesamt 5 mal ausführen

  • Hallo zusammen,
    ich bin absolut neu hier und benötige bitte Eure Unterstützung.
    Meine Tochter und ich haben keinen Plan von Java Script. Das was wir jetzt wissen, haben wir uns zusammengelesen, kommen aber nicht weiter.

    Sie soll aber eine mathematische Funktion mit Java Script erstellen.
    Ich versuche soweit ich kann, sie zu unterstützen.

    Die Aufgabe ist:
    1.) 2 Zufallszahlen zwischen 0 un 10 durch klick auf einen Button in Textfeldern auszugeben.


    das ist gelöst


    2.) Der User soll das Ergebnis (Multiplikation) selbst eingeben, was durch einen Button geprüft werden kann ob das eingegebene Ergebnis richtig oder falsch ist.

    das ist mit einem alert gelöst


    3.) Nun soll aber die Anzahl der richtigen oder falschen Ergebnisse noch in Textfeldern ausgegeben werden.


    Ich habe keine Ahnung, wie ich da ansetzen kann.

    Kann man durch klick auf das OK des Alert (richtig oder falsch) die Anzahl der richtigen oder falschen Ergebnisse in input Feldern ausgeben?


    4.) die Übung soll maximal 5 mal ausgeführt werden und dabei die die Felder der Zufallszahlen nach jeder der 5 Aufgaben wieder geleert werden, die Anzahl der richtigen oder

    falschen ergebnisse aber erhalten bleiben.


    Vielleicht am Ende in einem Div noch eine Art Gesamtauswertung. Das wäre aber dann schon ein extra.
    Und dann besteht noch ein Problem. Setze ich die Inputfelder innerhalb eines Form Tag, funktioniert das Script nicht mehr.


    das haben wir bisher:


    Vielen Dank vorab für Ideen, Hilfe und Unterstützung

  • Zitat

    Und dann besteht noch ein Problem. Setze ich die Inputfelder innerhalb eines Form Tag, funktioniert das Script nicht mehr.

    Das liegt an folgendem: Du hast dem Prüfen-Button den Typ "submit" gegeben. Das bewirkt, dass beim Klick das Formular abgeschickt wird, d. h. die URL, die Du im form-Tag unter "action" angegeben hast, wird geladen und die Werte der Formularfelder als GET- oder POST-Parameter übergeben. Gibst Du keine "action" an, wird die selbe Seite geladen.

    Diese Default-Aktion kannst Du durch Aufruf der Funktion event.preventDefault() unterdrücken:

    Code
    function pruefen(event)
    {
        event.preventDefault();

    Wie Du siehst, brauchst Du dafür das Event, Du musst es beim Aufruf als Parameter übergeben:

    Code
    <input type="submit"  onClick=pruefen(event) value="Prüfe Dein Ergebnis"></input>
  • Hallo Sempervivum,

    vielen Dank für die schnelle Antwort.
    Aber ich bekomme es nicht hin.
    Kannst Du mir bitte zeigen wo ich das im script ändern muss?
    Muss ich dazu die function prüfen, die ich ja schon habe abändern?


    Danke

  • Meine Antwort bezog sich nur auf das Teilproblem, das Du in dem zitierten Satz beschrieben hast. Für die Dinge mit dem Zählen der richtigen und falschen Antworten sind weitere Änderungen nötig. Ich sehe es mir an, wenn ich mehr Zeit habe oder jemand anders zeigt es dir.

  • Nicht nur alt , auch teilweise falsch.

    <bold> , <center> , <font> ist veraltet und wird bei aktuellen Html nicht mehr benutzt.

    Wie schon gesagt nutze Html5

    https://developer.mozilla.org/…/HTML5/HTML5_element_list


    <input> bekommt kein schließendes </input>

    text ,bgcolor, link ,alink, vlink, background, size sind auch keine aktuellen Attributen mehr .

    Das macht heute die Css

    https://wiki.selfhtml.org/wiki…ieg/Stylesheets_einbinden


    Deine Alert ausgabe ist nervig.

    Ich würde das mit innerHTML ausgeben lassen.

    Deine submit Buttons solltest du als type='button' nutzen dann würde das eine problem auch schon weg sein.


    onclick sollte man auch nicht mehr unbedingt nutzten.

    Da wäre addEventListener besser

    zb

    Code
    document.getElementById('pruefe').addEventListener('click',function(){
             var ergebnis_eingabe=document.getElementById("ergebnis_eingabe").value;
             if(ergebnis_eingabe == ergebnis){
                 ausgabe("richtig");
             }else{
                 ausgabe("falsch");
             }
    })


    Um deine Ausgabe zu bekommen könnte deine ausgabe dann so aussehen

    Code
    function ausgabe(id){
             document.getElementById('info').innerHTML='Deine Antwort ist <span class='+id+'>'+id+'</span>';
             var ob = document.getElementById(id);
             ob.value=parseInt(ob.value)+1;
             Start(0,10)
    }

    Den rest solltest du jetzt selber hinbekommen.

    Die id info ist der Ersatz für deinen Alert

  • Galaxy66

    Zu deinem Code wurde ja schon einiges gesagt, deshalb lass ich es an dieser Stelle (obwohl es mir in den Fingern juckt :D ).


    Und eingentlich bin ich kein Freund von Fertiglösungen, aber wollte dir bzw. deiner Tochter dann doch mal zeigen, wie es besser aussehen könnte.

    Alle vier von dir beschriebenen Punkte sind enthalten.

    Bitte schaut ihr beide euch das mal an und versucht den Code zu verstehen.

    Falls es hackt, werde ich ihn auch gerne kommentieren.





    Und so könnte es z.B. aussehen:

    html-seminar.de/woltlab/attachment/2493/

  • Hallo nextuser,

    ich weiß nicht was ich sagen soll. Meine Tochter und ich sind baff und möchten uns ganz herzlich bei Dir bedanken.
    Das hätten wir nie so umgesetzt bekommen.
    Vielen vielen Dank


    Bleibt gesund :)

  • Das hätten wir nie so umgesetzt bekommen.

    Und das kann zum Problem werden. Aus der Eingangsfrage kann man ja entnehmen, dass es sich um eine Art Hausaufgabe handelt und wenn der Lehrer/Dozent nicht völlig doof ist, wird er sehr schnell festellen, dass das nicht von deiner Tochter stammt

  • Und das kann zum Problem werden. Aus der Eingangsfrage kann man ja entnehmen, dass es sich um eine Art Hausaufgabe handelt und wenn der Lehrer/Dozent nicht völlig doof ist, wird er sehr schnell festellen, dass das nicht von deiner Tochter stammt

    Und dann? Geht die Welt unter ?

  • Ich finde es immert gut wenn man einen Code so schreibt das er ohne großen Aufwand erweiterbar wäre.

    In diesen Fall hätte ich die Tabelle wahrscheinlich mit createElement erstellt.

    Jetzt kann man nur 5 Aufgaben stellen , um mehr Aufgaben zu stellen müßte man jetzt wieder das Html ändern.


    Aber das muß jeder selber wissen wie er das macht und hier in der Aufgabenstellung wahr ja auch nur von 5 Aufgaben die rede.

    Wahrscheinlich ist es jetzt so auch einfacher für den TE das zu verstehen wie der Code funktioniert.

  • Und das kann zum Problem werden. Aus der Eingangsfrage kann man ja entnehmen, dass es sich um eine Art Hausaufgabe handelt und wenn der Lehrer/Dozent nicht völlig doof ist, wird er sehr schnell festellen, dass das nicht von deiner Tochter stammt

    Das geht in Ordnung und ich gebe Dir recht.
    Das Hauptproblem ist in den Schulen, dass eben nicht nach neuestem Standards unterrichtet wird.
    Die in den oberen Kommentaren zu recht bemängelten HTML Fehler werden heute noch den Schülern vermittelt.

    Sie soll keine 1 dafür bekommen. Ich spreche das auch mit meiner Tochter durch, damit sie auch begründen kann, warum es so gemacht wurde.
    Ich finde es sogar gut, dass sie damit in der Schule argumentieren kann, auch wenn es nicht von ihr ist und das soll und wird sie ja auch erwähnen.

    Zeigen wie es besser geht
    CSS und ausgelagertes JS wird in den Schulen gar nicht vermittelt, das ist wirklich ärgerlich.
    Ich selbst stecke da auch nur mehr oder weniger etwas drin. Wir können uns aber anhand der Löung von nextuser ganz gut orientieren.

  • Das Hauptproblem ist in den Schulen, dass eben nicht nach neuestem Standards unterrichtet wird.

    Tja, viele Lehrer haben keinen Bock sich weiterzubilden, geht ja auch so.


    Sie soll keine 1 dafür bekommen.

    Wird sie auch nicht bekommen, weil der Lehrer vermutlich selber den Code nicht versteht. ^^



    Ich finde es sogar gut, dass sie damit in der Schule argumentieren kann

    Richtig, aber dafür muss sie selber wissen, warum, wieso und weshalb das so gemacht worden ist.

  • Ich habe den Beitrag gemacht, weil ich es echt verantwortungslos finde, den Schülern mit sowas altem zu kommen.

    Normalerweise würde ich, wie auch die anderen schon angesprochen haben, nur Verbesserungschvorschläge geben und der fragenden Person nahelegen, Grundlagen ect. zu lernen.

    Allerdings würde es leider wahrscheinlich dabei bleiben, das "nur" der Stoff in der Schule gelernt wird. Da wollte ich etwas gegensteuern.

    Deshalb habe ich eine mögliche Lösung geschrieben.


    Und ich hoffe, das sie und ihre Tochter den Hintergrund (den Code zu verstehen) entsprechend auch so annehmen.



    Ich finde es immert gut wenn man einen Code so schreibt das er ohne großen Aufwand erweiterbar wäre.

    Bin ich grundsätzlich auch bei dir.

    Allerdings habe ich zum einen einfach die festen Vorgaben genommen, zum anderen den Code relativ simpel gehalten.

    Geht mir ja im Kern darum, das die beiden ihn nachvollziehen und verstehen können.


    Das Hauptproblem ist in den Schulen, dass eben nicht nach neuestem Standards unterrichtet wird.

    Habe mal in der Berufsschule Elektrotechnik gehabt. Als ich nach einem Praktikum die Lehrer darauf angesprochen habe, das vieles nicht mehr so gemacht wird wie die uns beibringen wollten, gabs nur ein "Ja, aber wir machen das hier so".

    Das ist nicht nur ein kleines Problem. Wenn das Fundament schon im Moor gebaut wird, was für Aussichten gibt dann die Zukunft her?


    Tja, viele Lehrer haben keinen Bock sich weiterzubilden, geht ja auch so.

    Und dabei reden wir hier ja noch nichtmal von hochkomplexen Sprachen. Wenn selbst HTML auf der Strecke bleibt, hat der Lehrer sein Beruf verfehlt!


    Richtig, aber dafür muss sie selber wissen, warum, wieso und weshalb das so gemacht worden ist.

    Und genau daran wird sie hoffentlich jetzt arbeiten. War dafür gedacht.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!