Fritz: mit JavaScript bzw. jQuery Rechnen

0 98

mit JavaScript bzw. jQuery Rechnen

Fritz
  • formulare
  • html
  • jquery
  1. 0
    Matthias Apsel
    1. 0
      Fritz
      1. 0
        j4nk3y
  2. 0
    dedlfix
  3. 0
    Gunnar Bittersmann
    1. 0
      Fritz
      1. 0
        j4nk3y
        1. 0
          Fritz
          1. 0
            j4nk3y
            1. 0
              Fritz
              1. 0
                j4nk3y
                1. 0
                  Gunnar Bittersmann
                  1. 0
                    j4nk3y
                    1. 0
                      Der Martin
                      1. 0
                        Auge
                        1. 0
                          Der Martin
                      2. 0
                        j4nk3y
                    2. 0
                      Gunnar Bittersmann
            2. 2
              1unitedpower
      2. 0
        Robert B,
        • formulare
        • html
        • javascript
        1. 0
          Fritz
          1. 0
            j4nk3y
            1. 0
              Fritz
              1. 0
                JürgenB
                1. 0
                  Fritz
                  1. 0
                    j4nk3y
                    1. 0
                      Fritz
                      1. 0
                        j4nk3y
                        1. 0
                          Fritz
                        2. 0
                          Fritz
                      2. 0
                        Gunnar Bittersmann
                        1. 0
                          Fritz
                          1. 0
                            j4nk3y
                            1. 0
                              Fritz
                              1. 0
                                j4nk3y
                                1. 0
                                  Fritz
                                  1. 0
                                    j4nk3y
                                    1. 0
                                      Fritz
                                      1. 0
                                        j4nk3y
                                      2. 0
                                        Gunnar Bittersmann
                                        1. 0
                                          Fritz
                                          1. 0
                                            j4nk3y
                                            1. 0
                                              Fritz
                                              1. 0
                                                j4nk3y
                                                1. 0
                                                  Fritz
                                                  1. 0
                                                    j4nk3y
                                                    1. 0
                                                      Fritz
                                                      1. 0
                                                        Gunnar Bittersmann
                                                        1. 0
                                                          Fritz
                                                          1. 0
                                                            Gunnar Bittersmann
                                                            1. 0
                                                              Fritz
                                                              1. 0
                                                                Matthias Apsel
                                                              2. 0
                                                                Gunnar Bittersmann
                                              2. 0
                                                JürgenB
                                                1. 0
                                                  j4nk3y
                                                2. 0
                                                  Fritz
                                                  1. 0
                                                    JürgenB
                                                    1. 0
                                                      Fritz
                                                      1. 0
                                                        JürgenB
                                                      2. 0
                                                        Matthias Apsel
                                                  2. 0
                                                    Auge
                                                    1. 0
                                                      Der Martin
                                                      1. 0
                                                        Fritz
                                                        1. 1
                                                          Der Martin
                                                        2. 0
                                                          Gunnar Bittersmann
                                                    2. 0
                                                      Gunnar Bittersmann
                                                    3. 0
                                                      Fritz
                                                      1. 0
                                                        Matthias Apsel
                                                        1. 0
                                                          Fritz
                                                          1. 0
                                                            Matthias Apsel
                          2. 0
                            Gunnar Bittersmann
          2. 0
            JürgenB
          3. 0
            Gunnar Bittersmann
          4. 0
            MudGuard
            1. 0
              Matthias Apsel
        2. 0
          Matthias Apsel
          1. 0
            Robert B,
            • html
            1. 0
              Gunnar Bittersmann
              1. 0
                Robert B,
                1. 0
                  Gunnar Bittersmann
            2. 0
              Der Martin
              1. 0
                Robert B,
        3. 0
          Gunnar Bittersmann
          1. 0
            j4nk3y
            1. 0
              Gunnar Bittersmann
          2. 0
            Robert B,
            • formulare
            • html
            1. 0
              Matthias Apsel
              1. 0
                Robert B.
                • formulare
                • html
                • menschelei
                1. 0
                  Matthias Apsel
                  1. 0
                    Gunnar Bittersmann
                    • menschelei
                  2. 0
                    Der Martin
                    1. 0
                      Tabellenkalk
                      • menschelei
                      • offtopic
                      1. 0
                        Der Martin
                        1. 0
                          Tabellenkalk
                          1. 0
                            Matthias Apsel
                            • menschelei
                            • sprache
                        2. 0
                          Auge
      3. 0
        Gunnar Bittersmann

Hallo,

ist es möglich mit jQuery live zu rechnen?

<label for="feld1">Feld 1</label>
<input type="number" name="feld1" id="feld1" value="">

<label for="fedl2">Feld 2</label>
<input type="number" name="fedl2" id="fedl2" value="">

<label for="feld3">Feld 3</label>
<input type="number" name="feld3" id="feld3" value="">
  1. Im Feld 1 steht eine Zahl oder es wird eine Zahl eingetragen.
  2. Im Feld 3 steht eine Zahl oder es wird eine Zahl eingetragen.
  3. Im Feld 2 soll der Wert aus Feld 1 - Feld 3 errechnet werden.

Ist dieses möglich?

  1. Hallo Fritz,

    ist es möglich mit jQuery live zu rechnen?

    Ja. Falls „live“ ohne Umweg eines Buttons meint, auch das geht.

    Bis demnächst
    Matthias

    --
    Dieses Forum nutzt Markdown. Im Wiki erhalten Sie Hilfe bei der Formatierung Ihrer Beiträge.
    1. Hallo,

      Ja. Falls „live“ ohne Umweg eines Buttons meint, auch das geht.

      ja, es sollte funktionieren ohne dass ich erst ein Button drücken muss. Der User gibt einen Wert ein und es sollte im Feld zwei sofort das Ergebnis zu sehen sein.

      1. Hallo,

        Ja. Falls „live“ ohne Umweg eines Buttons meint, auch das geht.

        ja, es sollte funktionieren ohne dass ich erst ein Button drücken muss. Der User gibt einen Wert ein und es sollte im Feld zwei sofort das Ergebnis zu sehen sein.

        Mit jQuery ganz einfach machbar:

        $('#feld2').on('input', function(){
        	if(typeof($('#feld1').val()) === "number" && typeof($('#feld2').val()) === "number"){
        		var ergebnis = ...
        		$('#ergebnis').html(ergebnis);
        	}
        });
        

        oder so... Setzt natürlich voraus, dass man erst etwas in Feld 1 eingetragen hat und dann in Feld 2.

        Gruß
        Jo

  2. Tach!

    ist es möglich mit jQuery live zu rechnen?

    jQuery hat mit dem Rechnen nichts am Hut. Es kann dir allerdings/lediglich dabei helfen, die Werte aus Elementen im DOM zu beschaffen und das Ergebnis einem Element im DOM zuzuweisen. Solche Zugriffe sind die Grundlagen dessen, was man über jQuery wissen muss, wenn man es einsetzen möchte, und man findest das in jedem jQuery-Einsteiger-Tutorial.

    Man braucht für die Aufgabenstellung aber nicht unbedingt jQuery, diese Zugriffe gehen auch mit purem Javascript nicht wesentlich umständlicher zu erledigen.

    dedlfix.

  3. @@Fritz

    ist es möglich mit jQuery live zu rechnen?

    Ja. Und wie schon gesagt wurde, ist das auch ohne jQuery möglich.

    Aus welchem Grund fragst du nach jQuery und nicht nach JavaScript?

    <label for="feld1">Feld 1</label>
    <input type="number" name="feld1" id="feld1" value="">
    
    <label for="fedl2">Feld 2</label>
    <input type="number" name="fedl2" id="fedl2" value="">
    
    <label for="feld3">Feld 3</label>
    <input type="number" name="feld3" id="feld3" value="">
    
    1. Im Feld 1 steht eine Zahl oder es wird eine Zahl eingetragen.
    2. Im Feld 3 steht eine Zahl oder es wird eine Zahl eingetragen.
    3. Im Feld 2 soll der Wert aus Feld 1 - Feld 3 errechnet werden.

    Im Feld 2 soll also nichts vom Nutzer eingetragen werden? Warum ist es dann ein Eingabe-Element?

    Es sollte ein Ausgabe-Element sein: output.

    LLAP 🖖

    --
    “I love to go to JS conferences to speak about how to avoid using JavaScript. Please learn CSS & HTML to reduce your JS code bloat.” —Estelle Weyl
    1. Hallo

      Aus welchem Grund fragst du nach jQuery und nicht nach JavaScript?

      weil ich in meinem Projekt jQuery bereits eingebunden habe. Also könnte ich es auch verwenden.

      Im Feld 2 soll also nichts vom Nutzer eingetragen werden? Warum ist es dann ein Eingabe-Element?

      In diesem Feld kann ich etwas eintragen wenn ich denn wollte. Ich gehe immer erst einmal vom schlimmsten Fall aus. Das Rechnen mit jQuery erleichtert später das Pflegen eines Artikels.

      1. Hey,

        Aus welchem Grund fragst du nach jQuery und nicht nach JavaScript?

        weil ich in meinem Projekt jQuery bereits eingebunden habe. Also könnte ich es auch verwenden.

        Wie schon erwähnt rechnest du nicht mit jQuery. Das ist nur eine DOM manipulations library für Javascript. Rechnen tust du mit Javascript, mit + - / *, lediglich die Werte aus den Eingabefeldern kannst du leicht mit jQuery holen mit $('#feldx').val(); Dann könnte man gleich noch prüfen ob es eine Zahl ist etc.

        Im Feld 2 soll also nichts vom Nutzer eingetragen werden? Warum ist es dann ein Eingabe-Element?

        In diesem Feld kann ich etwas eintragen wenn ich denn wollte. Ich gehe immer erst einmal vom schlimmsten Fall aus. Das Rechnen mit jQuery erleichtert später das Pflegen eines Artikels.

        Was ist denn der schlimmste Fall? das der Nutzer denkt, dass das Ergebis Falsch ist?

        Gruß
        Jo

        1. Hallo,

          Was ist denn der schlimmste Fall? das der Nutzer denkt, dass das Ergebis Falsch ist?

          nein, ein falsches Ergebnis fange ich mit PHP ab. Der schlimmste Fall ist wenn JavaScript im Browser deaktiviert ist und der User nichts händisch eintragen könnte. Daher sollte auch das Feld 2 beschreibbar sein.

          1. Hey,

            Was ist denn der schlimmste Fall? das der Nutzer denkt, dass das Ergebis Falsch ist?

            nein, ein falsches Ergebnis fange ich mit PHP ab. Der schlimmste Fall ist wenn JavaScript im Browser deaktiviert ist und der User nichts händisch eintragen könnte. Daher sollte auch das Feld 2 beschreibbar sein.

            PHP läuft auf dem Server und kann nur auf Client Eingabe etwas machen. Das wird dann also nicht Live ohne Button gehen. Und ich glaube es wird schwer eine Gleichung oder Berechnungsvorschriften zu finden die Javascript Falsch ausrechnet... ich tippe mal auf keine.

            Sprich du möchtest einmal beim Client das Ergebnis berechnen und per Ajax beim Server nachfragen ob der das gleiche Ergebnis bekommt?

            Gruß
            Jo

            1. Hallo,

              Sprich du möchtest einmal beim Client das Ergebnis berechnen und per Ajax beim Server nachfragen ob der das gleiche Ergebnis bekommt?

              mein Vorhaben ist folgendes

              1. User kann die Berechnung Live durchführen.
              2. Sollten falsche Eingaben getätigt werden z.B. im Feld 3 steht eine höhere Zahl wie in Feld 1, wird dieses mit PHP geprüft und es wird kein Datenbank-Update durchgeführt.

              Ideal wäre, wenn JavaScript dieses direkt noch prüfen könnte ob im Feld 3 eine höhere Zahlt steht als in Feld 1

              1. Hey,

                1. User kann die Berechnung Live durchführen.
                2. Sollten falsche Eingaben getätigt werden z.B. im Feld 3 steht eine höhere Zahl wie in Feld 1, wird dieses mit PHP geprüft und es wird kein Datenbank-Update durchgeführt.

                Ideal wäre, wenn JavaScript dieses direkt noch prüfen könnte ob im Feld 3 eine höhere Zahlt steht als in Feld 1

                Mit Javascript kannst du genau das gleiche prüfen wie du auch mit PHP prüfst, nur eben nicht auf dem Server sondern beim Cleint, was deinen Server entlastet. Und falls du befürchtest, dass javascript beim client ausgeschaltet ist, dann frag ihn ob er es nicht einschalten möchte, sonst gibst du ihm zurück das deine Seite nur mit Javascript einwandfrei und wie von dir gewollt funktioniert.

                Gruß
                Jo

                1. @@j4nk3y

                  Mit Javascript kannst du genau das gleiche prüfen wie du auch mit PHP prüfst, nur eben nicht auf dem Server sondern beim Cleint, was deinen Server entlastet.

                  Der Grund ist Unsinn.

                  Was entlastet wird ist der Nutzer, weil er nicht erst lange auf den Roundtrip über den Server warten muss, sondern mit clientseitigem JavaScript sofort das Ergebnis seiner Interktion präsentiert bekommt.

                  Und falls du befürchtest, dass javascript beim client ausgeschaltet ist, dann frag ihn ob er es nicht einschalten möchte, sonst gibst du ihm zurück das deine Seite nur mit Javascript einwandfrei und wie von dir gewollt funktioniert.

                  😆 ROTFL.

                  „Natürlich schalte ich JavaScript ein (nachdem ich mich bewusst zu entschieden habe, es auszuschalten), nur um deine Seite benutzen zu können.“ —kein Nutzer, jemals

                  LLAP 🖖

                  --
                  “I love to go to JS conferences to speak about how to avoid using JavaScript. Please learn CSS & HTML to reduce your JS code bloat.” —Estelle Weyl
                  1. @@j4nk3y

                    Mit Javascript kannst du genau das gleiche prüfen wie du auch mit PHP prüfst, nur eben nicht auf dem Server sondern beim Cleint, was deinen Server entlastet.

                    Der Grund ist Unsinn.

                    Ja, da gehe ich auch eher von wesentlich mehr Anfragen pro Zeiteinheit aus als wirklich auftreten.

                    Was entlastet wird ist der Nutzer, weil er nicht erst lange auf den Roundtrip über den Server warten muss, sondern mit clientseitigem JavaScript sofort das Ergebnis seiner Interktion präsentiert bekommt.

                    Das auch ja.

                    Und falls du befürchtest, dass javascript beim client ausgeschaltet ist, dann frag ihn ob er es nicht einschalten möchte, sonst gibst du ihm zurück das deine Seite nur mit Javascript einwandfrei und wie von dir gewollt funktioniert.

                    😆 ROTFL.

                    „Natürlich schalte ich JavaScript ein (nachdem ich mich bewusst zu entschieden habe, es auszuschalten), nur um deine Seite benutzen zu können.“ —kein Nutzer, jemals

                    Dann ist die Seite wohl für einige nicht nutzbar.

                    Gruß
                    Jo

                    1. Hallo,

                      „Natürlich schalte ich JavaScript ein (nachdem ich mich bewusst zu entschieden habe, es auszuschalten), nur um deine Seite benutzen zu können.“ —kein Nutzer, jemals

                      Dann ist die Seite wohl für einige nicht nutzbar.

                      wenn das wirklichso ist, dann solltest du diesen Mangel beheben. Aber weiter oben sagst du schon, dass du für den Fall, dass JS nicht zur Verfügung steht, auch alle nötigen Eingaben händisch ermöglichen willst. Also besteht kein Grund, JS zwingend vorauszusetzen; es wäre lediglich ein Komfort-Feature.

                      Die Plausibilitätsprüfung auf der Serverseite muss so oder so sein, denn Daten, die vom Client kommen, können beliebig manipuliert sein, sei es durch Fehler oder durch böse Absicht.

                      Ciao,
                       Martin

                      --
                      Es gibt eine Theorie, die besagt, dass das Universum augenblicklich durch etwas noch Komplizierteres und Verrücktes ersetzt wird, sobald jemand herausfindet, wie es wirklich funktioniert. Es gibt eine weitere Theorie, derzufolge das bereits geschehen ist.
                      - (frei übersetzt nach Douglas Adams)
                      1. Hallo

                        „Natürlich schalte ich JavaScript ein (nachdem ich mich bewusst zu entschieden habe, es auszuschalten), nur um deine Seite benutzen zu können.“ —kein Nutzer, jemals

                        Dann ist die Seite wohl für einige nicht nutzbar.

                        wenn das wirklichso ist, dann solltest du diesen Mangel beheben.

                        Das soll @j4nk3y für seine eigene(n) Seite(n) tun, hier geht es um Fritzens Seite/Anwendung.

                        Aber weiter oben sagst du schon, dass du für den Fall, dass JS nicht zur Verfügung steht, auch alle nötigen Eingaben händisch ermöglichen willst.

                        Wie gesagt, falscher Adressat.

                        Also besteht kein Grund, JS zwingend vorauszusetzen; es wäre lediglich ein Komfort-Feature.

                        Das ist der springende Punkt. Fritz will das ja genau so umsetzen. Speicherung der Daten nach Überprüfung auf dem Server, Vorabprüfung und -berechnung im Browser. J4nk3ys „Dann verzichte halt auf den einen oder anderen Nutzer“ ist am Thema vorbei und zudem konkret unnötig.

                        Tschö, Auge

                        --
                        Wo wir Mängel selbst aufdecken, kann sich kein Gegner einnisten.
                        Wolfgang Schneidewind *prust*
                        1. Hi,

                          wenn das wirklichso ist, dann solltest du diesen Mangel beheben.

                          Das soll @j4nk3y für seine eigene(n) Seite(n) tun, hier geht es um Fritzens Seite/Anwendung.

                          oh, sorry. Da habe ich mich wohl verzettelt.

                          Also besteht kein Grund, JS zwingend vorauszusetzen; es wäre lediglich ein Komfort-Feature.

                          Das ist der springende Punkt. Fritz will das ja genau so umsetzen.

                          Ja, stimmt. Wie gesagt, habe mich im Dschungel verlaufen.

                          J4nk3ys „Dann verzichte halt auf den einen oder anderen Nutzer“ ist am Thema vorbei und zudem konkret unnötig.

                          Das sehe ich allerdings auch so, daher mein Veto.

                          Ciao,
                           Martin

                          --
                          Es gibt eine Theorie, die besagt, dass das Universum augenblicklich durch etwas noch Komplizierteres und Verrücktes ersetzt wird, sobald jemand herausfindet, wie es wirklich funktioniert. Es gibt eine weitere Theorie, derzufolge das bereits geschehen ist.
                          - (frei übersetzt nach Douglas Adams)
                      2. Hey,

                        „Natürlich schalte ich JavaScript ein (nachdem ich mich bewusst zu entschieden habe, es auszuschalten), nur um deine Seite benutzen zu können.“ —kein Nutzer, jemals

                        Dann ist die Seite wohl für einige nicht nutzbar.

                        wenn das wirklichso ist, dann solltest du diesen Mangel beheben.

                        Also bei meinem momentanen Projekt wird das nicht möglich sein, da zuviele Daten beim neuladen der Seite, nach einem Formular abschicken zum Beispiel, geladen werden müssten und der Client immer wieder mehrere 10 Sekunden warten müsste bis die Seite vollständig geladen ist. Aber wie schon an anderer Stelle erwähnt, gehört das hier nicht zum Thema.

                        Gruß
                        Jo

                    2. @@j4nk3y

                      Und falls du befürchtest, dass javascript beim client ausgeschaltet ist, dann frag ihn ob er es nicht einschalten möchte, sonst gibst du ihm zurück das deine Seite nur mit Javascript einwandfrei und wie von dir gewollt funktioniert.

                      😆 ROTFL.

                      „Natürlich schalte ich JavaScript ein (nachdem ich mich bewusst zu entschieden habe, es auszuschalten), nur um deine Seite benutzen zu können.“ —kein Nutzer, jemals

                      Dann ist die Seite wohl für einige nicht nutzbar.

                      Doch, sie sollte auch ohne JavaScript nutzbar sein. Dann über Rückmeldungen vom Server. Serverseitig müssen die Eingaben sowieso überprüft werden.

                      Die Seite ist für einige nicht ganz so komfortabel nutzbar.

                      Das ist ein großer Unterschied zu „nicht nutzbar“. Progressive enhancement at work.

                      LLAP 🖖

                      --
                      “I love to go to JS conferences to speak about how to avoid using JavaScript. Please learn CSS & HTML to reduce your JS code bloat.” —Estelle Weyl
            2. Und ich glaube es wird schwer eine Gleichung oder Berechnungsvorschriften zu finden die Javascript Falsch ausrechnet... ich tippe mal auf keine.

              console.assert(0.1 + 0.2 === 0.3, 'Urgh, scary floating-point math');
              
      2. Moin,

        Aus welchem Grund fragst du nach jQuery und nicht nach JavaScript?

        weil ich in meinem Projekt jQuery bereits eingebunden habe. Also könnte ich es auch verwenden.

        Die Frage ist bloß, wie viel Mehraufwand jQuery gegenüber diesem erzeugt:

        <form oninput="erg.value=parseInt(op1.value) + parseInt(op2.value)">
                <p><input id="op1" name="o1" type="number"> + <input id="op2" name="o2" type="number"></p>
                <p><label>Ergebnis: <output name="erg" for="op1"></output></label></p>
        </form>
        

        Viele Grüße
        Robert

        1. Hallo,

          Die Frage ist bloß, wie viel Mehraufwand jQuery gegenüber diesem erzeugt:

          <form oninput="erg.value=parseInt(op1.value) + parseInt(op2.value)">
                  <p><input id="op1" name="o1" type="number"> + <input id="op2" name="o2" type="number"></p>
                  <p><label>Ergebnis: <output name="erg" for="op1"></output></label></p>
          </form>
          

          ich dachte an so etwas

          $('#feld3').keyup(function(){
             $('#feld2').html($('#feld1').val() - $('#feld3').val(););
          });
          

          Leider tut sich da überhaupt nichts.

          1. Hey,

            ich dachte an so etwas

            $('#feld3').keyup(function(){
               $('#feld2').html($('#feld1').val() - $('#feld3').val());
            });
            

            Ein semikolon zuviel. Und du solltest .on('input') verwenden. Deine Überprüfung ob der wert von feld3 größer als der von feld1 ist kommt dann in die Funktion.

            Gruß
            Jo

            1. Hallo,

              Ein semikolon zuviel. Und du solltest .on('input') verwenden. Deine Überprüfung ob der wert von feld3 größer als der von feld1 ist kommt dann in die Funktion.

              $('#feld3').on('input', function(){
                 $('#feld2').html($('#feld1').val() - $('#feld3').val());
              });
              

              tut sich leider dennoch nichts.

              1. Hallo,

                tut sich leider dennoch nichts.

                ich weiß jetzt nicht, wann input feuert, aber Klick doch mal „irgendwo“ hin, damit das Inputelement den Focus verliert.

                Gruß
                Jürgen

                1. Hallo,

                  ich weiß jetzt nicht, wann input feuert, aber Klick doch mal „irgendwo“ hin, damit das Inputelement den Focus verliert.

                  es tut sich leider gar nicht, egal ob ich in ein Feld klicke, das Feld wieder verlasse oder irgendwo auf meiner Seite klicke. In der Konsole taucht auch kein Fehler auf.

                  1. Hey,

                    ich weiß jetzt nicht, wann input feuert, aber Klick doch mal „irgendwo“ hin, damit das Inputelement den Focus verliert.

                    es tut sich leider gar nicht, egal ob ich in ein Feld klicke, das Feld wieder verlasse oder irgendwo auf meiner Seite klicke. In der Konsole taucht auch kein Fehler auf.

                    Wie Wäre es mit einem Fiddle oder CodePen.

                    Gruß
                    Jo

                    1. Hallo,

                      Wie Wäre es mit einem Fiddle oder CodePen.

                      klar http://codepen.io/anon/pen/qqNgdL

                      1. Hallo,

                        Wie Wäre es mit einem Fiddle oder CodePen.

                        klar http://codepen.io/anon/pen/qqNgdL

                        Kann auch nicht funktionieren wenn deine id von Feld 2 nicht id="feld2" sondern id="fedl2" ist.

                        Edit: Beim neu laden des Pens war der Fehler mit der Id komischerweise nichtmehr da... Änder das .html in .val, dann läufts.

                        <label for="feld1">Feld 1</label>
                        <input type="number" name="feld1" id="feld1">
                        
                        <label for="feld2">Feld 2</label>
                        <input type="number" name="feld2" id="feld2">
                        <output id="feld3"></output>
                        
                        $(document).ready(function(){
                          $('#feld2').on('input', function(){
                            var ergebnis = $('#feld1').val() - $('#feld2').val();
                            $('#feld3').html(ergebnis);
                            console.log(ergebnis);
                          });
                        });  
                        

                        Gruß
                        Jo

                        1. Hallo,

                          $(document).ready(function(){
                            $('#feld2').on('input', function(){
                              var ergebnis = $('#feld1').val() - $('#feld2').val();
                              $('#feld3').html(ergebnis);
                              console.log(ergebnis);
                            });
                          });  
                          

                          tut sich ebenfalls nichts: http://codepen.io/anon/pen/qqNgdL den Fehler mit den falschen Bezeichnungen hatte ich schon behoben.

                        2. Hallo,

                          jetzt geht es: http://codepen.io/anon/pen/qqNgdL ich musste folgendes hinzufügen

                          $('#feld2').val(ergebnis);
                          

                          @Gunnar Bittersmann hat mich auf den Weg gebracht. Danke dafür. Danke auch dir @j4nk3y für deine Hilfe.

                      2. @@Fritz

                        klar http://codepen.io/anon/pen/qqNgdL

                        $('#feld2').html()
                        

                        Du kannst in ein Eingabelfeld (was ein leeres HTML-Element ist) kein HTML einfügen.

                        Ein Eingabefeld hat einen Wert – den man auch mit JavaScript ändern kann.

                        LLAP 🖖

                        --
                        “I love to go to JS conferences to speak about how to avoid using JavaScript. Please learn CSS & HTML to reduce your JS code bloat.” —Estelle Weyl
                        1. Hallo,

                          $('#feld2').html()
                          

                          Du kannst in ein Eingabelfeld (was ein leeres HTML-Element ist) kein HTML einfügen.

                          Ein Eingabefeld hat einen Wert – den man auch mit JavaScript ändern kann.

                          laut https://www.tutorials.de/threads/summe-von-input-feldern-berechnen-wie.220335/ müsste es so gehen http://codepen.io/anon/pen/JbKxyV aber auch hier tut sich nichts.

                          EDIT: Hab mein Beispiel nochmals überarbeitet: http://codepen.io/anon/pen/JbKxyV wenn ich ein span nehme dann geht es. Wie kann ich etwas in ein <input> schreiben?

                          1. $('#feld3').val(ergebnis);

                            gruß jo

                            1. Hallo,

                              mein Beispiel funktioniert nun http://codepen.io/anon/pen/qqNgdL wenn ich allerdings im Feld3 eine Zahl eintragen, die den Wert im Feld1 überbietet steht in Feld2 ein Negativwert. Was vom Rechnen her stimmt allerdings möchte ich dann gerne dass eine Meldung kommt, dass dieses nicht sein. Könntest du mir hier vielleicht noch helfen?

                              1. Hey,

                                $(document).ready(function(){
                                  $('#feld3').on('input', function(){
                                    var ergebnis = $('#feld1').val() - $('#feld3').val();
                                    if(ergebnis <= 0){
                                      alert("Ergebnis ist negativ!");
                                    }else{
                                       $('#feld2').val(ergebnis);
                                    }
                                   
                                  });
                                });
                                

                                Gruß
                                Jo

                                1. Hallo,

                                  $(document).ready(function(){
                                    $('#feld3').on('input', function(){
                                      var ergebnis = $('#feld1').val() - $('#feld3').val();
                                      if(ergebnis <= 0){
                                        alert("Ergebnis ist negativ!");
                                      }else{
                                         $('#feld2').val(ergebnis);
                                      }
                                     
                                    });
                                  });
                                  

                                  dankeschön. Ich hatte in der Zwischenzeit auch mal etwas getestet http://codepen.io/anon/pen/aBZMYN

                                  Deine ist natürlich viel komfortabler. Jetzt muss ich schauen dass wenn ich 0 habe, dass der Wert von Feld 3 nach dem Alert wieder gelöscht wird. Das Problem ist, was ist wenn vorhin ein Wert drin stand (was passieren kann) lass ich das Feld löschen ist dieser natürlich auch weg. Kann man dieses irgendwie umgehen?

                                  1. Hey,

                                    $(document).ready(function(){
                                      $('#feld3').on('input', function(){
                                        var ergebnis = $('#feld1').val() - $('#feld3').val();
                                        if(ergebnis <= 0){
                                          alert("Ergebnis ist negativ!");
                                    if(ergebnis == 0){$('#feld3').val('')}
                                        }else{
                                           $('#feld2').val(ergebnis);
                                        }
                                       
                                      });
                                    });
                                    

                                    Deine ist natürlich viel komfortabler. Jetzt muss ich schauen dass wenn ich 0 habe, dass der Wert von Feld 3 nach dem Alert wieder gelöscht wird.

                                    Siehe oben.

                                    Das Problem ist, was ist wenn vorhin ein Wert drin stand (was passieren kann) lass ich das Feld löschen ist dieser natürlich auch weg. Kann man dieses irgendwie umgehen?

                                    Entweder du willst ihn löschen oder nicht?

                                    Gruß
                                    Jo

                                    1. Hallo,

                                      Entweder du willst ihn löschen oder nicht?

                                      naja weder noch. Wenn das Feld zu beginn leer war, dann soll es auch wieder komplett geleert werden. Wenn zu Beginn ein Wert drin stand, ich ihn jetzt überschrieben habe und dieser ins - geht dann soll der alte (der, der zu Beginn drin stand) wieder eingefügt werden.

                                      1. Hey,

                                        Entweder du willst ihn löschen oder nicht?

                                        naja weder noch. Wenn das Feld zu beginn leer war, dann soll es auch wieder komplett geleert werden. Wenn zu Beginn ein Wert drin stand, ich ihn jetzt überschrieben habe und dieser ins - geht dann soll der alte (der, der zu Beginn drin stand) wieder eingefügt werden.

                                        Dann änderst du den Wert mit $('#feldx').val(wertx);.

                                        Gruß
                                        Jo

                                      2. @@Fritz

                                        naja weder noch. Wenn das Feld zu beginn leer war, dann soll es auch wieder komplett geleert werden. Wenn zu Beginn ein Wert drin stand, ich ihn jetzt überschrieben habe und dieser ins - geht dann soll der alte (der, der zu Beginn drin stand) wieder eingefügt werden.

                                        In anderen Worten: Du willst den Wert nur dann ins Eingabefeld schreiben, wenn er nicht negativ (oder positiv?) ist.

                                        Dann mach das doch so.

                                        LLAP 🖖

                                        --
                                        “I love to go to JS conferences to speak about how to avoid using JavaScript. Please learn CSS & HTML to reduce your JS code bloat.” —Estelle Weyl
                                        1. Hallo,

                                          In anderen Worten: Du willst den Wert nur dann ins Eingabefeld schreiben, wenn er nicht negativ (oder positiv?) ist.

                                          genau dieses möchte ich erreichen. Das Script soll erst schreiben wenn der Wert nicht negativ ist. Alles darüber oder 0 darf geschrieben werden.

                                          Dann mach das doch so.

                                          Die Frage ist nur wie.

                                          1. Hey,

                                            Die Frage ist nur wie.

                                            Ich glaube du solltest dich etwas mit Logik auseinandersetzen. Du hast deine Bedingung doch schon definiert, jetzt musst du diese doch nur mit if,elseif und else prüfen. Und dann das ausführen was du machen möchtest.

                                            Gruß
                                            Jo

                                            1. Hallo,

                                              Ich glaube du solltest dich etwas mit Logik auseinandersetzen. Du hast deine Bedingung doch schon definiert, jetzt musst du diese doch nur mit if,elseif und else prüfen. Und dann das ausführen was du machen möchtest.

                                              ich glaube ihr versteht nicht was ich genau meine. Es kann folgendes vorkommen

                                              <label for="feld1">Feld 1</label>
                                              <input type="number" name="feld1" id="feld1" value="100">
                                              
                                              <label for="feld2">Feld 2</label>
                                              <input type="number" name="feld2" id="feld2" value="100">
                                              
                                              <label for="feld3">Feld 3</label>
                                              <input type="number" name="feld3" id="feld3" value="">
                                              

                                              oder auch dieses

                                              <label for="feld1">Feld 1</label>
                                              <input type="number" name="feld1" id="feld1" value="100">
                                              
                                              <label for="feld2">Feld 2</label>
                                              <input type="number" name="feld2" id="feld2" value="50">
                                              
                                              <label for="feld3">Feld 3</label>
                                              <input type="number" name="feld3" id="feld3" value="25">
                                              

                                              Wenn ich jetzt in einen negativen Wert im Feld 2 komme, dann darf der Wert in diesem Fall die 25 nicht gelöscht bzw. überschrieben werden.

                                              1. Hey,

                                                ich glaube ihr versteht nicht was ich genau meine. Es kann folgendes vorkommen

                                                <label for="feld1">Feld 1</label>
                                                <input type="number" name="feld1" id="feld1" value="100">
                                                
                                                <label for="feld2">Feld 2</label>
                                                <input type="number" name="feld2" id="feld2" value="100">
                                                
                                                <label for="feld3">Feld 3</label>
                                                <input type="number" name="feld3" id="feld3" value="">
                                                

                                                oder auch dieses

                                                <label for="feld1">Feld 1</label>
                                                <input type="number" name="feld1" id="feld1" value="100">
                                                
                                                <label for="feld2">Feld 2</label>
                                                <input type="number" name="feld2" id="feld2" value="50">
                                                
                                                <label for="feld3">Feld 3</label>
                                                <input type="number" name="feld3" id="feld3" value="25">
                                                

                                                Wenn ich jetzt in einen negativen Wert im Feld 2 komme, dann darf der Wert in diesem Fall die 25 nicht gelöscht bzw. überschrieben werden.

                                                if(feld2 < 0){
                                                hier passiert nichts wenn du nicht sagst das etwas passieren soll
                                                }
                                                else{
                                                hier kannst du den wert löschen/überschreiben, weil feld 2 positiv oder 0 ist.
                                                }
                                                

                                                Gruß
                                                Jo

                                                1. Hallo,

                                                  if(feld2 < 0){
                                                  hier passiert nichts wenn du nicht sagst das etwas passieren soll
                                                  }
                                                  else{
                                                  hier kannst du den wert löschen/überschreiben, weil feld 2 positiv oder 0 ist.
                                                  }
                                                  

                                                  sorry ich verstehe es nicht und jeder schreibt hier etwas anderes.

                                                  1. Hey,

                                                    Wenn ich jetzt in einen negativen Wert im Feld 2 komme, dann darf der Wert in diesem Fall die 25 nicht gelöscht bzw. überschrieben werden.

                                                    if($('#feld2').val() < 0){
                                                    
                                                    }
                                                    else{
                                                     $('#feld2').val('');
                                                    }
                                                    

                                                    Der Satz und der Code haben die selbe Aussage.

                                                    Oder andersherum und kürzer aber gleichwertig:

                                                    if($('#feld2').val('') > 0){
                                                    	$('#feld2').val('');
                                                    }
                                                    

                                                    Gruß
                                                    Jo

                                                    1. Danke für deine Hilfe, aber ich gebe auf. Bringt doch alles nichts. Mit jedem Code wird es irgendwie bei mir schlimmer.

                                                      1. @@Fritz

                                                        Danke für deine Hilfe, aber ich gebe auf. Bringt doch alles nichts. Mit jedem Code wird es irgendwie bei mir schlimmer.

                                                        Ich komme auch nicht mehr mit. Besonders, weil noch die Antwort auf meine Frage aussteht:

                                                        Das heißt also: im Feld 2 kann, aber muss nicht unbedingt die Summe der Werte der Felder 1 und 3 stehen?

                                                        Mir ist der Sinn der Eingabefelder nicht klar.

                                                        LLAP 🖖

                                                        --
                                                        “I love to go to JS conferences to speak about how to avoid using JavaScript. Please learn CSS & HTML to reduce your JS code bloat.” —Estelle Weyl
                                                        1. Hallo,

                                                          Das heißt also: im Feld 2 kann, aber muss nicht unbedingt die Summe der Werte der Felder 1 und 3 stehen?

                                                          doch, das habe ich jetzt geändert. Feld 2 kann nicht von Hand geändert werden. Es wird berechnet aus Feld 1 und Feld 3.

                                                          1. @@Fritz

                                                            Das heißt also: im Feld 2 kann, aber muss nicht unbedingt die Summe der Werte der Felder 1 und 3 stehen?

                                                            doch, das habe ich jetzt geändert. Feld 2 kann nicht von Hand geändert werden. Es wird berechnet aus Feld 1 und Feld 3.

                                                            Aha. Also ist input doch falsch. Es ist ein output-Feld.

                                                            LLAP 🖖

                                                            --
                                                            “I love to go to JS conferences to speak about how to avoid using JavaScript. Please learn CSS & HTML to reduce your JS code bloat.” —Estelle Weyl
                                                            1. Hallo,

                                                              Aha. Also ist input doch falsch. Es ist ein output-Feld.

                                                              Was für ein Feld ich nehme spielt absolut keine Rolle und interessiert auch keinen. Wer weiß ob ich irgendwann doch die Felder alle wieder beschreibbar machen möchte.

                                                              1. Hallo Fritz,

                                                                Was für ein Feld ich nehme spielt absolut keine Rolle und interessiert auch keinen.

                                                                HTML ist eine Beschreibungssprache und hat eine eingebaute Semantik. Du solltest stets die semantisch richtigen Elemente verwenden.

                                                                Wer weiß ob ich irgendwann doch die Felder alle wieder beschreibbar machen möchte.

                                                                Ja, dann musst du halt aus dem output-Element wieder ein input machen.

                                                                Bis demnächst
                                                                Matthias

                                                                --
                                                                Dieses Forum nutzt Markdown. Im Wiki erhalten Sie Hilfe bei der Formatierung Ihrer Beiträge.
                                                              2. @@Fritz

                                                                Was für ein Feld ich nehme spielt absolut keine Rolle

                                                                Was für HTML-Elemente du wofür nimmst spielt eine essentielle Rolle für das Funktionieren jeder Webseite.

                                                                und interessiert auch keinen.

                                                                Doch. Die Nutzer.

                                                                LLAP 🖖

                                                                --
                                                                “I love to go to JS conferences to speak about how to avoid using JavaScript. Please learn CSS & HTML to reduce your JS code bloat.” —Estelle Weyl
                                              2. Hallo,

                                                Wenn ich jetzt in einen negativen Wert im Feld 2 komme, dann darf der Wert in diesem Fall die 25 nicht gelöscht bzw. überschrieben werden.

                                                wenn in Feld 3 etwas eingegeben wird, was in Feld 2 zu einem unerwünschten Ergebnis führt, soll der Wert in Feld 3 wieder auf den alten Wert zurückgesetzt werden?

                                                Dann musst du dir den Wert in Feld 3 merken, damit du ihn dann bei falscher/unerwünschter Eingabe zurücksetzen kannst. Eine weitere Möglichkeit wäre, mit Hilfe der min/max-Attribute den gültigen Wertebereich in Feld 3 in Abhängigkeit von Feld 1 festzulegen.

                                                Gruß
                                                Jürgen

                                                1. Hey,

                                                  Eine weitere Möglichkeit wäre, mit Hilfe der min/max-Attribute den gültigen Wertebereich festzulegen.

                                                  Uhhh, das kannte ich noch garncht. Danke!

                                                  Gruß
                                                  Jo

                                                2. Hallo,

                                                  wenn in Feld 3 etwas eingegeben wird, was in Feld 2 zu einem unerwünschten Ergebnis führt, soll der Wert in Feld 3 wieder auf den alten Wert zurückgesetzt werden?

                                                  fast richtig, in Feld 2 und in Feld 3 sollten die alten Werte wieder hergestellt werden wenn in Feld 2 es einem unerwünschten Ergebnis kommt.

                                                  Dann musst du dir den Wert in Feld 3 merken, damit du ihn dann bei falscher/unerwünschter Eingabe zurücksetzen kannst. Eine weitere Möglichkeit wäre, mit Hilfe der min/max-Attribute den gültigen Wertebereich in Feld 3 in Abhängigkeit von Feld 1 festzulegen.

                                                  Das habe ich hier schon einmal versucht http://codepen.io/anon/pen/aBZMYN

                                                  Wie kann ich mir die Werte zwischenspeichern?

                                                  1. Hallo,

                                                    Das habe ich hier schon einmal versucht http://codepen.io/anon/pen/aBZMYN

                                                    das Poblem ist, dass man zwar bei den Pfeil-Tasten in der Begrenzung bleibt, aber bei Direkteingabe der falsche Wert doch übernommen wird.

                                                    Wie kann ich mir die Werte zwischenspeichern?

                                                    nach dem Laden der Seite die Werte auslesen und speichern, ebenso nach jeder erfolgreichen Eingabe. Bei falscher Eingabe kann dann eine Warnung erfolgen und das Rückschreiben der gespeicherten Werte.

                                                    Gruß
                                                    Jürgen

                                                    1. Hallo,

                                                      das Poblem ist, dass man zwar bei den Pfeil-Tasten in der Begrenzung bleibt, aber bei Direkteingabe der falsche Wert doch übernommen wird.

                                                      kann man dieses Problem irgendwie abfangen? Oder muss ich mit einem Schieberegler arbeiten?

                                                      Wie kann ich mir die Werte zwischenspeichern? nach dem Laden der Seite die Werte auslesen und speichern, ebenso nach jeder erfolgreichen Eingabe. Bei falscher Eingabe kann dann eine Warnung erfolgen und das Rückschreiben der gespeicherten Werte.

                                                      meinst du in einer PHP Session?

                                                      1. Hallo

                                                        Hallo,

                                                        das Poblem ist, dass man zwar bei den Pfeil-Tasten in der Begrenzung bleibt, aber bei Direkteingabe der falsche Wert doch übernommen wird.

                                                        kann man dieses Problem irgendwie abfangen?

                                                        da habe ich auch noch nichts gefunden.

                                                        Oder muss ich mit einem Schieberegler arbeiten?

                                                        würde ich nicht machen, da die Einstellung zu ungenau ist.

                                                        Wie kann ich mir die Werte zwischenspeichern? nach dem Laden der Seite die Werte auslesen und speichern, ebenso nach jeder erfolgreichen Eingabe. Bei falscher Eingabe kann dann eine Warnung erfolgen und das Rückschreiben der gespeicherten Werte.

                                                        meinst du in einer PHP Session?

                                                        nein, im Javascript:

                                                        var old_val = $('#feld3').val();
                                                        

                                                        Gruß
                                                        Jürgen

                                                      2. Hallo Fritz,

                                                        Wie kann ich mir die Werte zwischenspeichern? nach dem Laden der Seite die Werte auslesen und speichern, ebenso nach jeder erfolgreichen Eingabe. Bei falscher Eingabe kann dann eine Warnung erfolgen und das Rückschreiben der gespeicherten Werte.

                                                        meinst du in einer PHP Session?

                                                        Das wäre denkbar ist jedoch das, was du gerade eben nicht möchtest. Du verwendest ja JavaScript und den „mehrere 10 Sekunden langen“ wederholten Seitenaufbau zu vermeiden.

                                                        Du kannst mit JavaScript die entsprechenden Werte auslesen und speichern.

                                                        Prinzip:

                                                        on document ready 
                                                          Originalwert_Feld1. = Feld1.val 
                                                        

                                                        Bis demnächst
                                                        Matthias

                                                        --
                                                        Dieses Forum nutzt Markdown. Im Wiki erhalten Sie Hilfe bei der Formatierung Ihrer Beiträge.
                                                  2. Hallo

                                                    fast richtig, in Feld 2 und in Feld 3 sollten die alten Werte wieder hergestellt werden wenn in Feld 2 es einem unerwünschten Ergebnis kommt.

                                                    Dann musst du dir den Wert in Feld 3 merken, damit du ihn dann bei falscher/unerwünschter Eingabe zurücksetzen kannst.

                                                    Wie kann ich mir die Werte zwischenspeichern?

                                                    In Variablen oder, wenn es mehr als ein paar Werte sein sollen, der Web Storage im Browser. Die Variante Session Storage ist hier wohl richtig.

                                                    In deinem Kopf scheint, wenn ich den Thread quer lese, vieles durcheinander zu gehen. Hilfreich ist in solchen Fällen der Verquirlung eine Auflistung, was geschehen soll, in zeitlicher Reihenfolge.

                                                    ein Versuch:

                                                    1. Nach dem laden des Dokuments werden die in den Feldern vorhandenen Werte in Variablen zwischengespeichert.
                                                    2. Abwarten, ob in Feld 1 oder 3 eine Eingabe erfolgt (eventlistener).
                                                    3. Wenn ja, dann Eingaben der Felder 1 und 3 prüfen und die Rechenoperation ausführen. Wenn das Ergebnis positiv ist, dann …
                                                      • … Eintrag des Ergebnisses in Feld 2, sonst …
                                                      • … Meldung und Eintrag der ursprünglichen Werte aus den Variablen.

                                                    Das sind also mehrere kleine Aufgaben, die du erstmal für sich betrachten kannst. Einen Teil davon habt ihr ja schon erarbeitet. Bleiben also nur noch einzelne Aufgaben übrig (Zwischenspeicherung, und spätere Verwendung).

                                                    Und dann noch: Tief durchatmen!

                                                    Tschö, Auge

                                                    --
                                                    Wo wir Mängel selbst aufdecken, kann sich kein Gegner einnisten.
                                                    Wolfgang Schneidewind *prust*
                                                    1. Hi,

                                                      In deinem Kopf scheint, wenn ich den Thread quer lese, vieles durcheinander zu gehen.

                                                      ich fürchte vielmehr, Fritz ist ein völliger Grünschnabel im Metier, und ihm fehlt jegliches Verständnis für Programmlogik und Abläufe. Seine bisherigen Ergebnisse hat er durch Copy&Paste und etwas Rumprobieren[1] erzielt, ohne wirklich zu wissen, was er tut. Das macht es für die Helfer nicht einfach, denn man weiß nie, ob es ausreicht, bis Noah zurückzugehen, oder ob es doch bis Adam und Eva sein muss.

                                                      Hilfreich ist in solchen Fällen der Verquirlung eine Auflistung, was geschehen soll, in zeitlicher Reihenfolge.

                                                      Und eine klare Beschreibung des Sachverhalts.

                                                      Und dann noch: Tief durchatmen!

                                                      Soll auch gelegentlich helfen.

                                                      So long,
                                                       Martin

                                                      --
                                                      Es gibt eine Theorie, die besagt, dass das Universum augenblicklich durch etwas noch Komplizierteres und Verrücktes ersetzt wird, sobald jemand herausfindet, wie es wirklich funktioniert. Es gibt eine weitere Theorie, derzufolge das bereits geschehen ist.
                                                      - (frei übersetzt nach Douglas Adams)

                                                      1. Solange nicht auch noch Rum probieren dazukommt ... ;-) ↩︎

                                                      1. Hallo,

                                                        ich fürchte vielmehr, Fritz ist ein völliger Grünschnabel im Metier, und ihm fehlt jegliches Verständnis für Programmlogik und Abläufe. Seine bisherigen Ergebnisse hat er durch Copy&Paste und etwas Rumprobieren[^1] erzielt, ohne wirklich zu wissen, was er tut. Das macht es für die Helfer nicht einfach, denn man weiß nie, ob es ausreicht, bis Noah zurückzugehen, oder ob es doch bis Adam und Eva sein muss.

                                                        stimmt. Und ich finde es auch nicht schlimm dass ich jetzt erst damit anfange. Bis jetzt bin ich mit jQuery und den fertigen Plugins immer zurecht gekommen. Du hast bestimmt auch mal klein angefangen?

                                                        Ich teste, ich fummel und schau was geht oder was eben nicht geht.

                                                        Und eine klare Beschreibung des Sachverhalts.

                                                        Die habe ich doch mehrfach gegeben?

                                                        Soll auch gelegentlich helfen.

                                                        Wenn der Kopf aber schon raucht, dann ist mit Durchatmen sehr schwer.

                                                        1. Hi,

                                                          ich fürchte vielmehr, Fritz ist ein völliger Grünschnabel im Metier, und ihm fehlt jegliches Verständnis für Programmlogik und Abläufe. Seine bisherigen Ergebnisse hat er durch Copy&Paste und etwas Rumprobieren[^1] erzielt, ohne wirklich zu wissen, was er tut. Das macht es für die Helfer nicht einfach, denn man weiß nie, ob es ausreicht, bis Noah zurückzugehen, oder ob es doch bis Adam und Eva sein muss.

                                                          stimmt. Und ich finde es auch nicht schlimm dass ich jetzt erst damit anfange.

                                                          nein, ich auch nicht. Es wäre aber kein Fehler gewesen, deinen Kenntnisstand ("blutiger Anfänger") am Anfang klar zu kommunizieren. Dann weiß man ungefähr, woran man ist. So ergab sich das Bild erst nach und nach aus einigen Beiträgen.

                                                          Bis jetzt bin ich mit jQuery und den fertigen Plugins immer zurecht gekommen. Du hast bestimmt auch mal klein angefangen?

                                                          Na klar. Aber auf dem traditionellen Weg: Systematisch, klein anfangen, kleine Schritte machen, und immer mit dem Bestreben, das auch zu verstehen, was ich da mache. Natürlich habe ich einen kleinen Vorteil: Ich habe als 16jähriger schon angefangen zu programmieren, ich habe Informatik studiert und war seither permanent im Bereich Softwareentwicklung unterwegs. Teils als Hobby, teils beruflich.

                                                          Ich teste, ich fummel und schau was geht oder was eben nicht geht.

                                                          Als Teilstrategie finde ich das auch in Ordnung. Ich kann nur nicht nachvollziehen, wenn jemand "nur" probiert oder fummelt, wie du es nennst. Für mich ist es ein unstillbares Verlangen, auch zu wissen, was ich da mache. Also lese ich Handbücher, Spezifikationen, Referenzen, Dokumentationen.

                                                          Und eine klare Beschreibung des Sachverhalts.

                                                          Die habe ich doch mehrfach gegeben?

                                                          Für mich waren die diversen Erklärungsansätze eher konfus. Ich habe lange nicht begriffen, was dir wirklich vorschwebt (um ehrlich zu sein, ich habe es jetzt noch nicht ganz verstanden). Auch das soll aber kein Vorwurf sein; ich weiß, dass das Talent zum Beschreiben und Erklären nicht jedem gegeben ist. Aber dann antworte doch bitte wenigstens auf konkrete Rückfragen.

                                                          Wenn der Kopf aber schon raucht, dann ist mit Durchatmen sehr schwer.

                                                          Gerade dann ist das manchmal die beste Lösung. Ich greife in solchen Fällen gern zu Jacke und/oder Regenschirm (je nach Witterung) und gehe eine halbe Stunde spazieren, lasse mir den Wind durchs Hirn wehen. Dabei gewinne ich ein bisschen Abstand vom Problem, und oft genug ist mir genau dadurch, dass ich quasi einen Schritt zurückgehe und einen anderen Aspekt des Problems betrachte, schon die Lösung klar geworden (oder zumindest ein Teil davon).

                                                          So long,
                                                           Martin

                                                          --
                                                          Es gibt eine Theorie, die besagt, dass das Universum augenblicklich durch etwas noch Komplizierteres und Verrücktes ersetzt wird, sobald jemand herausfindet, wie es wirklich funktioniert. Es gibt eine weitere Theorie, derzufolge das bereits geschehen ist.
                                                          - (frei übersetzt nach Douglas Adams)
                                                        2. @@Fritz

                                                          stimmt. Und ich finde es auch nicht schlimm dass ich jetzt erst damit anfange. Bis jetzt bin ich mit jQuery und den fertigen Plugins immer zurecht gekommen. Du hast bestimmt auch mal klein angefangen?

                                                          Als wir™ angefangen haben, taten wir das mit JavaScript. Nicht mit einer Bibliothek, die einem vorgaukeln könnte, man müsste gar kein JavaScript mehr kennen. Und auch nicht mit fertigen Plugins, die einem vorgaukeln, man müsste sie nur zusammenstecken und dann würde das passen und funktionieren.

                                                          Das mag heutzutage anders sein.

                                                          Ich teste, ich fummel und schau was geht oder was eben nicht geht.

                                                          Und wir™ haben eher versucht zu verstehen als gefummelt.

                                                          Und eine klare Beschreibung des Sachverhalts.

                                                          Die habe ich doch mehrfach gegeben?

                                                          Ja, und das immer etwas anders.

                                                          LLAP 🖖

                                                          --
                                                          “I love to go to JS conferences to speak about how to avoid using JavaScript. Please learn CSS & HTML to reduce your JS code bloat.” —Estelle Weyl
                                                    2. @@Auge

                                                      Abwarten, ob in Feld 1 oder 3 eine Eingabe erfolgt (eventlistener).

                                                      Besser: Abwarten, ob im Formular eine Eingabe erfolgt. Dann prüfen, ob diese in Feld 1 oder 3 erfolgte (event delegation).

                                                      LLAP 🖖

                                                      --
                                                      “I love to go to JS conferences to speak about how to avoid using JavaScript. Please learn CSS & HTML to reduce your JS code bloat.” —Estelle Weyl
                                                    3. Hallo,

                                                      1. Nach dem laden des Dokuments werden die in den Feldern vorhandenen Werte in Variablen zwischengespeichert.
                                                      2. Abwarten, ob in Feld 1 oder 3 eine Eingabe erfolgt (eventlistener).
                                                      3. Wenn ja, dann Eingaben der Felder 1 und 3 prüfen und die Rechenoperation ausführen. Wenn das Ergebnis positiv ist, dann …
                                                        • … Eintrag des Ergebnisses in Feld 2, sonst …
                                                        • … Meldung und Eintrag der ursprünglichen Werte aus den Variablen.

                                                      Das sind also mehrere kleine Aufgaben, die du erstmal für sich betrachten kannst. Einen Teil davon habt ihr ja schon erarbeitet. Bleiben also nur noch einzelne Aufgaben übrig (Zwischenspeicherung, und spätere Verwendung).

                                                      ich war jetzt 2 Stunden nicht am Rechner und bin eine Runde Rad gefahren um den Kopf etwas frei zu bekommen. Danach habe ich folgendes umgesetzt

                                                      var old_val_feld1 	= $('#feld1').val();
                                                      var old_val_feld2 	= $('#feld2').val();
                                                      var old_val_feld3	= $('#feld3').val();
                                                      
                                                      $('#feld3').on('input', function(){
                                                      		    
                                                          var ergebnis = $('#feld1').val() - $('#feld3').val();
                                                      		    
                                                          if(ergebnis <= -1){
                                                      		      
                                                      	alert("Sie können den Soll Wert von " + old_val_feld1 + " nicht überbieten");
                                                      	$('#feld3').val(old_val_feld3)
                                                      		    
                                                          }else{
                                                      	$('#feld2').val(ergebnis);
                                                          }	   
                                                      });
                                                      

                                                      Und siehe da es funktioniert http://codepen.io/anon/pen/aBZMYN

                                                      Mir gefällt die alert Box zwar überhaupt nicht aber soweit ich das richtig verstanden habe kann man da mit CSS nichts machen, da dieses Fenster vom Betriebssystem abhängig ist? Muss ich damit leben oder gibt es hier noch eine schönere Variante?

                                                      Danke an alle die mir bis hierhin weitergeholfen haben.

                                                      1. Hallo Fritz,

                                                        `if(ergebnis <= -1){`
                                                        

                                                        Mir scheint hier < 0 zielführender zu sein, denn man kann schließlich (böswillig oder unabsichtlich) auch nichtganze Zahlen eintragen.

                                                        Mir gefällt die alert Box zwar überhaupt nicht aber soweit ich das richtig verstanden habe kann man da mit CSS nichts machen, da dieses Fenster vom Betriebssystem abhängig ist? Muss ich damit leben oder gibt es hier noch eine schönere Variante?

                                                        Ja, du könntest ein passendes Element erzeugen, das ins DOM hängen und mit einem Schließen-Knopf versehen. Hier im Forum ist das so. Siehe createElement

                                                        Bis demnächst
                                                        Matthias

                                                        --
                                                        Dieses Forum nutzt Markdown. Im Wiki erhalten Sie Hilfe bei der Formatierung Ihrer Beiträge.
                                                        1. Guten Morgen,

                                                          Mir scheint hier < 0 zielführender zu sein, denn man kann schließlich (böswillig oder unabsichtlich) auch nichtganze Zahlen eintragen.

                                                          hatte ich erst. Allerdings wenn im Feld eine 100 steht, ich im Feld 3 ebenfalls eine 100 eintrage reagiert die alert Meldung was nicht richtig ist. Denn 100 - 100 gibt null sprich es ist nichts vorhanden, was passieren kann. Die Meldung sollte erst kommen, wenn ich ins negative komme.

                                                          1. Hallo Fritz,

                                                            negativ könnte auch -0,5 sein. < 0 ist wirklich kleiner als null. <= 0 ist kleiner oder gleich null.

                                                            Bis demnächst
                                                            Matthias

                                                            --
                                                            Dieses Forum nutzt Markdown. Im Wiki erhalten Sie Hilfe bei der Formatierung Ihrer Beiträge.
                          2. @@Fritz

                            $('#feld2').html()
                            

                            Du kannst in ein Eingabelfeld (was ein leeres HTML-Element ist) kein HTML einfügen.

                            Ein Eingabefeld hat einen Wert – den man auch mit JavaScript ändern kann.

                            laut https://www.tutorials.de/threads/summe-von-input-feldern-berechnen-wie.220335/ müsste es so gehen http://codepen.io/anon/pen/JbKxyV aber auch hier tut sich nichts.

                            Liest du eingentlich, was man dir schreibt?

                            document.getElementById('feld2').innerHTML = summe;
                            

                            Offensichtlich nicht.

                            Nochmal, diesmal nicht im Kleingedruckten:

                            Du kannst in ein Eingabelfeld (was ein leeres HTML-Element ist) kein HTML einfügen.

                            Ein Eingabefeld hat einen Wert – den man auch mit JavaScript ändern kann.

                            LLAP 🖖

                            --
                            “I love to go to JS conferences to speak about how to avoid using JavaScript. Please learn CSS & HTML to reduce your JS code bloat.” —Estelle Weyl
          2. Hallo,

            … oninput= …

            … keyup …

            beachte hierbei auch die Eingabe von mehrstelligen Zahlen!

            Leider tut sich da überhaupt nichts.

            auch keine Fehlermeldung in der Konsole?

            Gruß
            Jürgen

          3. @@Fritz

            ich dachte an so etwas

            $('#feld3').keyup(function(){
               $('#feld2').html($('#feld1').val() - $('#feld3').val(););
            });
            

            Dann denk an was anderes! keyup ist falsch.

            Es gibt verschiedene Möglichkeiten, ein Eingabefeld mit einem Wert zu befüllen. Darunter etliche, wo das keyup-Event nicht feuert.

            LLAP 🖖

            --
            “I love to go to JS conferences to speak about how to avoid using JavaScript. Please learn CSS & HTML to reduce your JS code bloat.” —Estelle Weyl
          4. Hi,

            <form oninput="erg.value=parseInt(op1.value) + parseInt(op2.value)">
                    <p><input id="op1" name="o1" type="number"> + <input id="op2" name="o2" type="number"></p>
                    <p><label>Ergebnis: <output name="erg" for="op1"></output></label></p>
            </form>
            

            ich dachte an so etwas

            $('#feld3').keyup(function(){
               $('#feld2').html($('#feld1').val() - $('#feld3').val(););
            });
            

            Leider tut sich da überhaupt nichts.

            weil im HTML die Ids op1, op2, op3 lauten, im Javascript aber feld1, feld2, feld3. (neben den Anmerkungen der anderen ...)

            cu,
            Andreas a/k/a MudGuard

            1. Hallo MudGuard,

              (neben den Anmerkungen der anderen ...)

              Hat eigentlich schon jemand drauf hingewiesen, dass

              <label>Ergebnis: <output name="erg" for="op1"></output></label>
              

              der Wert des for-Attributes unvollständig ist?

              Bis demnächst
              Matthias

              --
              Dieses Forum nutzt Markdown. Im Wiki erhalten Sie Hilfe bei der Formatierung Ihrer Beiträge.
        2. Hallo Robert B,,

          <form oninput="erg.value=parseInt(op1.value) + parseInt(op2.value)">
          

          on-Attribute sind ähnlich wie style-Attribute zu sehen ;-)

          Bis demnächst
          Matthias

          --
          Dieses Forum nutzt Markdown. Im Wiki erhalten Sie Hilfe bei der Formatierung Ihrer Beiträge.
          1. Moin Matthias,

            on-Attribute sind ähnlich wie style-Attribute zu sehen ;-)

            Und das heißt?

            Viele Grüße
            Robert

            1. @@Robert B,

              on-Attribute sind ähnlich wie style-Attribute zu sehen ;-)

              Und das heißt?

              Inline-Style (CSS-Code im Markup) ist bäh; Inline-Eventhandler (JavaScript-Code im HTML) ist bäh.

              LLAP 🖖

              --
              “I love to go to JS conferences to speak about how to avoid using JavaScript. Please learn CSS & HTML to reduce your JS code bloat.” —Estelle Weyl
              1. Moin Gunnar,

                on-Attribute sind ähnlich wie style-Attribute zu sehen ;-)

                Und das heißt?

                Inline-Style (CSS-Code im Markup) ist bäh; Inline-Eventhandler (JavaScript-Code im HTML) ist bäh.

                Also sind beide fast gleichwertig zu betrachten: bäh ;)

                Viele Grüße
                Robert

                1. @@Robert B,

                  on-Attribute sind ähnlich wie style-Attribute zu sehen ;-)

                  Und das heißt?

                  Inline-Style (CSS-Code im Markup) ist bäh; Inline-Eventhandler (JavaScript-Code im HTML) ist bäh.

                  Also sind beide fast gleichwertig zu betrachten: bäh ;)

                  Oder ähnlich – wie sich Matthias auszudrücken pflegte. Ähnlich bäh.

                  LLAP 🖖

                  --
                  “I love to go to JS conferences to speak about how to avoid using JavaScript. Please learn CSS & HTML to reduce your JS code bloat.” —Estelle Weyl
            2. Hallo,

              on-Attribute sind ähnlich wie style-Attribute zu sehen ;-)

              Und das heißt?

              das heißt, sie sind am besten nicht zu sehen.

              Ciao,
               Martin

              --
              Es gibt eine Theorie, die besagt, dass das Universum augenblicklich durch etwas noch Komplizierteres und Verrücktes ersetzt wird, sobald jemand herausfindet, wie es wirklich funktioniert. Es gibt eine weitere Theorie, derzufolge das bereits geschehen ist.
              - (frei übersetzt nach Douglas Adams)
              1. Hallo Martin,

                on-Attribute sind ähnlich wie style-Attribute zu sehen ;-)

                Und das heißt?

                das heißt, sie sind am besten nicht zu sehen.

                Vielen Dank für den Hinweis!

                Viele Grüße
                Robert

        3. @@Robert B,

          <form oninput="erg.value=parseInt(op1.value) + parseInt(op2.value)">
                  <p><input id="op1" name="o1" type="number"> + <input id="op2" name="o2" type="number"></p>
                  <p><label>Ergebnis: <output name="erg" for="op1"></output></label></p>
          </form>
          

          Fehler: Die Eingabefelder haben keine Beschriftung.

          LLAP 🖖

          --
          “I love to go to JS conferences to speak about how to avoid using JavaScript. Please learn CSS & HTML to reduce your JS code bloat.” —Estelle Weyl
          1. Hey,

            Fehler: Die Eingabefelder haben keine Beschriftung.

            Weil es mir gerade auffältt: Brauchen Input Felder immer eine beschriftung, auch wenn sie vom type="hidden" sind?

            Gruß
            Jo

            1. @@j4nk3y

              Weil es mir gerade auffältt: Brauchen Input Felder immer eine beschriftung, auch wenn sie vom type="hidden" sind?

              Nein.

              (Dann sind es ja keine Eingabefelder für Eingaben durch Nutzer.)

              LLAP 🖖

              --
              “I love to go to JS conferences to speak about how to avoid using JavaScript. Please learn CSS & HTML to reduce your JS code bloat.” —Estelle Weyl
          2. Hallo Gunnar,

            <form oninput="erg.value=parseInt(op1.value) + parseInt(op2.value)">
                    <p><input id="op1" name="o1" type="number"> + <input id="op2" name="o2" type="number"></p>
                    <p><label>Ergebnis: <output name="erg" for="op1"></output></label></p>
            </form>
            

            Fehler: Die Eingabefelder haben keine Beschriftung.

            Fehlendes Label oder fehlender value?

            Viele Grüße
            Robert

            1. Hallo Robert B,,

              Fehlendes Label oder fehlender value?

              Ja. ;-) Label

              Bis demnächst
              Matthias

              --
              Dieses Forum nutzt Markdown. Im Wiki erhalten Sie Hilfe bei der Formatierung Ihrer Beiträge.
              1. Hallo Matthias,

                Fehlendes Label oder fehlender value?

                Ja. ;-) Label

                Kaffee mit Milch oder Zucker :D

                Viele Grüße
                Robert

                1. Hallo Robert B.,

                  Fehlendes Label oder fehlender value?

                  Ja. ;-) Label

                  Kaffee mit Milch oder Zucker :D

                  Darauf antworte ich immer: „Nein, Kaffee.“

                  In manchen Hotels gibt es folgenden Hinweis:

                  „Bitte keine Binden und Tampons in die Toilette werfen.“

                  „Aha, also eins von beiden geht, immer schön abwechselnd.“

                  Bis demnächst
                  Matthias

                  --
                  Dieses Forum nutzt Markdown. Im Wiki erhalten Sie Hilfe bei der Formatierung Ihrer Beiträge.
                  1. @@Matthias Apsel

                    In Hotels gibt es folgenden Hinweis:

                    „Bitte keine Binden und Tampons in die Toilette werfen.“

                    „Aha, also eins von beiden geht, immer schön abwechselnd.“

                    Was du so alles für Reiseutensilien mitführst!

                    LLAP 🖖

                    --
                    “I love to go to JS conferences to speak about how to avoid using JavaScript. Please learn CSS & HTML to reduce your JS code bloat.” —Estelle Weyl
                  2. Moin,

                    Fehlendes Label oder fehlender value?

                    Ja. ;-) Label

                    Kaffee mit Milch oder Zucker :D

                    Darauf antworte ich immer: „Nein, Kaffee.“

                    In manchen Hotels gibt es folgenden Hinweis:

                    „Bitte keine Binden und Tampons in die Toilette werfen.“

                    „Aha, also eins von beiden geht, immer schön abwechselnd.“

                    im Omnibus habe ich vorn, oberhalb der Scheibe mal gelesen:

                    Es ist nicht gestattet, während der Fahrt den Fahrer anzusprechen oder zu rauchen.

                    Na wer tut denn auch sowas!

                    So long,
                     Martin

                    --
                    Es gibt eine Theorie, die besagt, dass das Universum augenblicklich durch etwas noch Komplizierteres und Verrücktes ersetzt wird, sobald jemand herausfindet, wie es wirklich funktioniert. Es gibt eine weitere Theorie, derzufolge das bereits geschehen ist.
                    - (frei übersetzt nach Douglas Adams)
                    1. Hallo,

                      Es ist nicht gestattet, während der Fahrt den Fahrer anzusprechen oder zu rauchen.

                      Na wer tut denn auch sowas!

                      Da sehe ich jetzt den Witz nicht. Ich halte die Formulierung für korrekt. Was erlaubt zu sein scheint, ist das gleichzeitige mit dem Fahrer sprechen und rauchen, was aber physikalisch ziemlich ausgeschlossen ist.

                      Gruß
                      Kalk

                      1. Hi,

                        Es ist nicht gestattet, während der Fahrt den Fahrer anzusprechen oder zu rauchen.

                        Na wer tut denn auch sowas!

                        Da sehe ich jetzt den Witz nicht. Ich halte die Formulierung für korrekt.

                        korrekt, aber doppeldeutig. Es ist nicht erlaubt, den Fahrer zu rauchen?
                        Man hätte die Reihenfolge umkehren sollen, dann wär's eindeutig.

                        Was erlaubt zu sein scheint, ist das gleichzeitige mit dem Fahrer sprechen und rauchen

                        Nein. Korrekterweise schließt A oder B den Fall A und B mit ein.
                        Umgangssprachlich ist allerdings meist ein exklusives Oder gemeint.

                        Ciao,
                         Martin

                        --
                        Es gibt eine Theorie, die besagt, dass das Universum augenblicklich durch etwas noch Komplizierteres und Verrücktes ersetzt wird, sobald jemand herausfindet, wie es wirklich funktioniert. Es gibt eine weitere Theorie, derzufolge das bereits geschehen ist.
                        - (frei übersetzt nach Douglas Adams)
                        1. Hallo,

                          Es ist nicht erlaubt, den Fahrer zu rauchen?

                          Oh, die Interpretation habe ich übersehen. Solche Ambitionen müssen natürlich durch entsprechende Verbote im Keim erstickt werden :)

                          Gruß
                          Kalk

                          1. Hallo Tabellenkalk,

                            Es ist nicht erlaubt, den Fahrer zu rauchen?

                            Oh, die Interpretation habe ich übersehen. Solche Ambitionen müssen natürlich durch entsprechende Verbote im Keim erstickt werden :)

                            Ebenso wie Lehrergrillen.

                            Bis demnächst
                            Matthias

                            --
                            Dieses Forum nutzt Markdown. Im Wiki erhalten Sie Hilfe bei der Formatierung Ihrer Beiträge.
                        2. Hallo

                          Es ist nicht gestattet, während der Fahrt den Fahrer anzusprechen oder zu rauchen.

                          Na wer tut denn auch sowas!

                          Da sehe ich jetzt den Witz nicht. Ich halte die Formulierung für korrekt.

                          korrekt, aber doppeldeutig. Es ist nicht erlaubt, den Fahrer zu rauchen?

                          Es soll Verkehrsunternehmen geben, die das nicht gestatten. Einige wenige Fahrer hätten es aber verdient. In der Pfeife, um genau zu sein, wie überall.

                          Tschö, Auge

                          --
                          Wo wir Mängel selbst aufdecken, kann sich kein Gegner einnisten.
                          Wolfgang Schneidewind *prust*
      3. @@Fritz

        Aus welchem Grund fragst du nach jQuery und nicht nach JavaScript?

        weil ich in meinem Projekt jQuery bereits eingebunden habe. Also könnte ich es auch verwenden.

        Ja, das könntest du zum Herauspicken der Elemente aus dem DOM und zur Registrierung des Event-Handlers tun.

        Ersteres ist aber gar nicht notwendig, weil Ein- und Ausgabeelemente von Forumularen schon in einer Collection verfügbar sind und über ihren Namen angesprochen werden können, also gar nicht aus dem DOM herausgesucht werden müssen.

        Im Feld 2 soll also nichts vom Nutzer eingetragen werden? Warum ist es dann ein Eingabe-Element?

        In diesem Feld kann ich etwas eintragen wenn ich denn wollte.

        Das heißt also: im Feld 2 kann, aber muss nicht unbedingt die Summe der Werte der Felder 1 und 3 stehen?

        Mir ist der Sinn der Eingabefelder nicht klar.

        LLAP 🖖

        --
        “I love to go to JS conferences to speak about how to avoid using JavaScript. Please learn CSS & HTML to reduce your JS code bloat.” —Estelle Weyl