Zahlen Im Input ändern

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Zahlen Im Input ändern

    Hi, ich würde gern Zahlen in einem Input ändern.

    Und zwar soll es wie folg funktionieren:

    Erstes Feld sind die Stunden und zweites Feld die Minuten.

    Dann habe ich 2 Buttons, mit denen ich entweder 15 min hoch oder 15 minuten runter machen kann. Nur weiß ich nicht, wie ich es machen kann, wenn die volle stunde erreicht ist, das sich im ersten Feld, wo die Stunden drin sind, ändert.

    Mein derzeitiger Gedankenanfang :

    Code:
    <FORM NAME=Calc>
    <br>
    <TABLE BORDER cellpadding=3 cellspacing=0 align=center><TR><TD>
    <INPUT TYPE=text NAME=Input Size=2 value="00" maxlength="2"> :
    <INPUT TYPE=text NAME=Input2 Size=2 value="00" maxlength="2">
    
    
    <INPUT TYPE=button VALUE=" + " OnClick="Calc.Input2.value = eval(Calc.Input2.value) + 15">
    <INPUT TYPE=button VALUE=" - " OnClick="Calc.Input2.value = eval(Calc.Input2.value) - 15">
    Leider weiß ich nul von Javascript.

    Wäre dankbar wenn mir einer helfen könnte, ode rmir ein Link auf ein Beispiel geben würde.

    Danke

  • #2
    Re: Zahlen Im Input ändern

    mit denen ich entweder 15 min hoch oder 15 minuten runter machen kann. Nur weiß ich nicht, wie ich es machen kann, wenn die volle stunde erreicht ist, das sich im ersten Feld, wo die Stunden drin sind, ändert.
    benutze die zeit zum rechnen, nicht stunden und minuten getrennt! drückst du die zeit in minuten aus, kannst du wunderbar agieren. um die felder zufüllen, mußt du natürlich h/min extrahieren, aber naja ...
    Die Zeit hat ihre Kinder längst gefressen

    Kommentar


    • #3
      OK nach ein bisschen probieren bin ich auf eine Lösung gekommen:

      Code:
      <script type="text/javascript">
      <!--
      function erhoehen() {
      
      if ( Calc.Input.value <= '23'){
      
      if ( Calc.Input2.value < '45'){
       Calc.Input2.value = eval(Calc.Input2.value) + 15;
      }
      else
      {
      Calc.Input.value = eval(Calc.Input.value) + 1 ;
      Calc.Input2.value = '00';
      }
      }
      else
      Calc.Input.value = '00';
      }
      
      function reduzieren() {
      if ( Calc.Input.value > '00' || Calc.Input2.value > '00' ){
      
      if ( Calc.Input2.value > '00' ){
       Calc.Input2.value = eval(Calc.Input2.value) - 15;
      }
      else
      {
      Calc.Input.value = eval(Calc.Input.value) - 1 ;
      Calc.Input2.value = '45';
      }
      }
      else
      {
      Calc.Input.value = '23';
      Calc.Input2.value = '45';
      }
      }
      
      function stunde() {
      if ( Calc.Input.value > '23'){
      Calc.Input.value = '00';
      }
      if ( Calc.Input.value == '0'){
      Calc.Input.value = '00';
      }
      }
      
      function minute() {
      if ( Calc.Input2.value > '59'){
      Calc.Input2.value = '00';
      }
      if ( Calc.Input2.value == '0'){
      Calc.Input2.value = '00';
      }
      }
      // -->
      </script>
      
      <FORM NAME=Calc>
      <br>
      <TABLE BORDER cellpadding=3 cellspacing=0 align=center><TR><TD>
      <INPUT TYPE=text NAME=Input Size=2 value="00" maxlength="2" onchange="stunde()"> :
      <INPUT TYPE=text NAME=Input2 Size=2 value="00" maxlength="2"  onchange="minute()">
      
      
      <INPUT TYPE=button VALUE=" + " OnClick="erhoehen()">
      <INPUT TYPE=button VALUE=" - " OnClick="reduzieren()">
      Jetzt ahbe ich noch 2 Probleme:

      1: Beim höchzählen, müsste nach 23 : 45 eigentlich 00:00 kommen, leider kommt nur 24:00, erst beim erneuten klciken kommt 00:00, warum?

      2: beim runterzählen der Minuten müsste noch 15 eigentlich 00 kommen, aber leider kommt nur 0. WArum?

      Danke für Hilfe

      Kommentar


      • #4
        Original geschrieben von Toxic
        1: Beim höchzählen, müsste nach 23 : 45 eigentlich 00:00 kommen, leider kommt nur 24:00, erst beim erneuten klciken kommt 00:00, warum?
        weil du abfragst, ob die stunde <= 23 ist, und wenn ja, eins draufaddierst - d.h. du tust dies auch, wenn die stunde schon 23 ist, und 23 plus 1 ergibt nun mal 24.

        2: beim runterzählen der Minuten müsste noch 15 eigentlich 00 kommen, aber leider kommt nur 0. WArum?
        weil in der mathematik zahlen nun mal keine führenden nullen haben - wenn du welche haben willst, musst du dies bei der ausgabe entsprechend formatieren.



        btw: schmeiß das dämliche eval() da raus, das hat an der stelle absolut nichts verloren!
        wenn du strings in zahlen umwandeln willst, dann nutze die dafür vorgesehene funktion parseInt() dafür.
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          Hi Toxic,

          aller Anfang ist schwer ... Datums- und Zeitwerte kannst du in JavaScript ganz simpel mit der DATE-Funktion bearbeiten. Diese Funktion hat den Vorteil, dass negative Werte automatisch angepasst werden - z.B. 20 Stunden, -7 Minuten wird zu 19:53 ...

          Folgendes Beispiel habe ich für dein Problem aus verschiedenen Teilen von selfhtml zusammengesucht:

          PHP-Code:
          <!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN">
          <
          html>
          <
          head>
          <
          title>Up and Down</title>
          <
          meta name="author" content="Patrick">
          <
          meta name="generator" content="Ulli Meybohms HTML EDITOR">
          </
          head>
          <
          body>
          <
          form name="frm1">
           <
          input type="text" name="zeit">
          </
          form>
          <
          script type="text/javascript">
          <!--
           var 
          jetzt = new Date();
           
          document.frm1.zeit.value=stdmin(jetzt);
           function 
          scroll(iWert) {
                    var 
          aryZeit = new Array();
                    
          aryZeit=document.frm1.zeit.value.split(":");
                    var 
          nWert = new Date(0,0,0,aryZeit[0],Number(aryZeit[1])+Number(iWert),0);
                    
          document.frm1.zeit.value=(stdmin(nWert));
           }
           function 
          stdmin(time) {
                    var 
          min time.getMinutes();
                    
          min min 10 "0" min min;
                    return 
          time.getHours()+":"+min;
           }
          -->
          </
          script>
          <
          a href="javascript:scroll(-15)">15 Minweniger</a>
          &
          nbsp;|&nbsp;
          <
          a href="javascript:scroll(15)">15 Minmehr</a>
          </
          body>
          </
          html
          HTH, Gruß
          Patrick

          Kommentar


          • #6
            Original geschrieben von Patrick_PQ
            Folgendes Beispiel habe ich für dein Problem aus verschiedenen Teilen von selfhtml zusammengesucht:
            das hätte er aber auch machen können......
            INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


            Kommentar


            • #7
              @Abraxax: ja, das stimmt zwar ... aber mir geht es oft genauso. Seit ca. einem Jahr arbeite ich mit PHP und vieles fällt mir noch reichlich schwer. Manchmal finde ich auch keinen Ansatz, weil mir der Befehl und die Möglichkeiten nicht bekannt sind - dann ist es für mich auch immer sehr schwierig zu suchen (weil ich ja nicht weiß wonach ...). Und ein kleines Beispiel hilft dann echt weiter ... lange Rede - kurzer Sinn: ich hatte gestern halt meinen sozialen Tag

              Kommentar


              • #8
                es sei dir verziehen ....
                INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                Kommentar


                • #9
                  DAnke @ Patrick_PQ

                  Im vergleich zu meine Cpode ist der ja richtig wintzig und ohne Fehler

                  Danke.

                  ---EDIT---

                  Axo, mir wäre es wichtig, das die Mnuten und Stunden in 2 getrennten inputfelder sind. Wie macht man es da ?

                  ---EDIT 2 ---

                  Habs geschaft

                  Danke nochmal an alle.
                  Zuletzt geändert von Toxic; 11.06.2004, 18:29.

                  Kommentar

                  Lädt...
                  X