Gerwin: +/- script für input feld gesucht

Hi!

Suche ein javascript, welches über +/- links zum wert eines input feldes jeweils 1 addiert bzw. subtrahiert, dabei aber nicht in den negativen zahlenbereich kommen darf.

habe leider bislang nichts brauchbares gefunden. vielleicht kennt jemand von euch ein solches script.

lg
Gerwin

  1. Hello,

    Suche ein javascript, welches über +/- links zum wert eines input feldes jeweils 1 addiert bzw. subtrahiert, dabei aber nicht in den negativen zahlenbereich kommen darf.

    habe leider bislang nichts brauchbares gefunden. vielleicht kennt jemand von euch ein solches script.

    Wo hast Du denn schon gesucht?
    Sollen wir mal mit den Seitenbetreibern schimpfen? *gg*

    Harzliche Grüße aus http://www.annerschbarrich.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau
    1. Wo hast Du denn schon gesucht?
      Sollen wir mal mit den Seitenbetreibern schimpfen? *gg*

      Hallo Tom!

      Habe bereits mit allen erdenklichen Suchbegriffen auf deutsch und englisch gegoogelt und alle mir bekannten JavaScript Verzechnisse durchstöbert. Nichts gefunden.

      lg
      Gerwin

  2. Hallo Gerwin,

    Kannst Du das etwas genauer beschreiben. Was meinst Du mit '+/- links'. Gibt es links vom Input-Feld +/- Buttons, oder meinst Du +/- auf der linken Haelfte der Tastatur. Was soll passieren, wenn der Wert negativ wird?

    Gruß,

    Dieter

    1. Hallo Gerwin,

      Kannst Du das etwas genauer beschreiben. Was meinst Du mit '+/- links'. Gibt es links vom Input-Feld +/- Buttons, oder meinst Du +/- auf der linken Haelfte der Tastatur. Was soll passieren, wenn der Wert negativ wird?

      Gruß,

      Dieter

      Hallo Dieter!

      Es geht um eine Artikelliste. Es soll links vom input Feld eine Grafik mit + Symbol und rechts vom Imput eine Grafik mit - Symbol sein.
      Onlick soll der Wert je nach Symbol verändert werden. Ist 0 erreicht und wird weiter Minus geklickt soll trotzdem 0 bleiben.

      in etwa so:

      • [ 1 ] -

      lg
      Gerwin

      1. Hallo Gerwin,

        Ok, in diesem Fall ist das ganz einfach.
        Ich unterstelle mal, dein Textfeld hat als id bzw. name = "zahl". Dann legst auf die Buttons onclick="rechnen('zahl', '+')", bzw. rechnen('zahl', '-'). Im <head> brauchst Du einen <script type="text/javascript">-Bereich mit der Funktion rechnen() und den Argumenten 'ziel' und 'operator'. Diese sieht etwa so aus:

        function rechnen(ziel, operator)
        {
          var zahlFeld = document.getElementById(ziel); // oder aber ueber document.formname.ziel, jedenfalls das bewusste Feld
          var wert     = zahlfeld.value;                // der Wert des Zahlfeldes

        if(operator == '-' && wert >= 0) // wenn der Minusknopf gedrueckt wurde und der Wert mindestestens 0 ist....
          {
            zahlFeld.value--;              // ...setze den Wert von 'ziel' eins runter...
          }
          else                             //... ansonsten, also wenn + gedreuckt wurde...
          {
            zahlFeld.value++;              //... setze den Wert eins hoch...
          }
        }

        Gruß,

        Dieter

        1. Ok, in diesem Fall ist das ganz einfach.
          Ich unterstelle mal, dein Textfeld hat als id bzw. name = "zahl".

          Hallo Dieter!

          Da es sich um längere Artikellisten handelt, haben die input Felder unterschiedliche Namen. Jeweils die Artikelnummer um in den Warenkorb übergeben zu werden.

          zB
          <input name="150017" ....
          <input name="150018" ....

          Jeder Artikel ist allerdings in einem eigenen form tag. vielleicht hilft das weiter?

          lg
          Gerwin

          1. Hallo Gerwin,

            <input name="150017" ....
            <input name="150018" ....

            In  meinem Beispiel uebergibst du ja den Namen, bzw. die Id an die Funktion, du kannst die Funktion also auf beliebige Felder anwenden. Alles was du machen musst, ist den +/- Buttons Name oder Id mitzugeben, zB. onclick="rechnen('150018', '+')". Da du offenbar keine IDs verwendest, sondern nur Namen, musst du die Funktion aus dem letzten Posting dementsprechend anpassen. Im Klartext, die Zeile var zahlFeld = document.getElementById(ziel); wird ohne Id's nicht funktionieren, du musst sie so anpassen wie in SelfHTML beschrieben.

            Gruß,

            Dieter

            1. Im Klartext, die Zeile var zahlFeld = document.getElementById(ziel); »» wird ohne Id's nicht funktionieren, du musst sie so anpassen wie in »» SelfHTML »» beschrieben.

              Hallo Dieter!

              Vielen Dank für Deine Hilfe. Mit einem Formularfeld funktioniert dein Listing wunderbar. habe nur noch ein else if eingebaut wenn wert == 0, da der wert sonst auf -1 springen könnte.

              Allerdings checke ich nicht (trotz deinem link) wie ich das ganze mit mehreren inputs auf einer seite verwenden kann.

              das ganze sieht derzeit so aus:

              <a href="#" onclick="rechnen('050019', '-')">-</a> <input name="050019" type="text" class="tickets_input" value="1" maxlength="3" id="050019"> <a href="#" onclick="rechnen('050019', '+')">+</a>

              wie aber die zeile
                 var zahlFeld = document.getElementById('ziel');
              anpassen?

              ich habe den inputs jetzt auch gleichlautende id's gegeben. vielleicht wirds dann einfacher...

              lg
              gerwin

              1. Hallo Gerwin,

                Ich habe da anscheinend etwas fuer Verwirrung gesorgt, weil meine Funktion zwei Fehler hatte. Dafuer gibt's jetzt eine komplette Beispielseite, die auch folgende Fehler und Unschoenheiten beseitigt:

                • Ids und Namen muessen mit Buchstaben oder Zahlen anfangen
                • <a href dient dazu, Seiten zu verlinken, nicht Javascript-Events zu triggern, dafuer sind zB. Buttons zustaendig, die man mit CSS entsprechend formatieren kann.
                  
                <html>  
                <head>  
                <title>Untitled Document</title>  
                <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">  
                <style type="text/css">  
                <!--  
                #test-form button {  
                 border: none;  
                 background-color:transparent;  
                 cursor:pointer;  
                 cursor:hand;  
                 color:#00c;  
                }  
                #test-form input {  
                  text-align:right;  
                }  
                -->  
                </style>  
                <script type="text/javascript">  
                function rechnen(ziel, operator)  
                {  
                  var zahlFeld = document.getElementById(ziel);  
                  var wert     = zahlFeld.value;  
                  
                  if(operator == '-' && wert > 0)  
                  {  
                    zahlFeld.value--;  
                  }  
                  else if(operator == '+')  
                  {  
                    zahlFeld.value++;  
                  }  
                }  
                </script>  
                </head>  
                <body>  
                <form action="" method="post" name="test_form" id="test-form">  
                  <button type="button" onclick="rechnen('_12345','+')">+</button>  
                  <input name="_12345" type="text" id="_12345" value="10">  
                  <button type="button" onclick="rechnen('_12345','-')">-</button>  
                  <br>  
                  <button type="button" onclick="rechnen('_34567','+')">+</button>  
                  <input name="_34567" type="text" id="_34567" value="15">  
                  <button type="button" onclick="rechnen('_34567','-')">-</button>  
                </form>  
                </body>  
                </html>  
                
                

                Gruß

                Dieter

                1. Hallo Dieter!

                  VIELEN DANK! Funktioniert wunderprächtig.

                  lg
                  Gerwin