Chrischaaan: zeitliches Eingabelimit

Hallo

wie mach ich das man nur eine bestimmte anzahl von sekunden was in das feld eingeben kann?
also ich schreib den ersten buchstaben in das feld,
dann hab ich noch 10 sekunden zeit und dann kann ich nichts mehr eingeben.

wie macht man das??
irgendwie muss man ja eine startzeit haben/vom system bekommen und dann noch ne zeit haben die immer wieder geprüft wird, und wenn die startzeit+10sek = der zweiten zeit ist isses vorbei.
aber wie frag ich das ab ob die zweite zeit gleich der ersten plus 10 sek ist??

wäre für hilfe sehr dankbar.

bye,Christian.

  1. hi,

    also ich schreib den ersten buchstaben in das feld,

    was du mit einem geeigneten eventhandler á la onkeydown o.ä. abfangen kannst.

    dann hab ich noch 10 sekunden zeit und dann kann ich nichts mehr eingeben.

    irgendwie muss man ja eine startzeit haben/vom system bekommen und dann noch ne zeit haben die immer wieder geprüft wird, und wenn die startzeit+10sek = der zweiten zeit ist isses vorbei.
    aber wie frag ich das ab ob die zweite zeit gleich der ersten plus 10 sek ist??

    sieh dir das objekt Date an (http://selfhtml.teamone.de/javascript/objekte/date.htm) - das bietet dir methoden, um die zeit in sekunden oder sogar millisekunden zu ermitteln.

    kenntnisse, wie du auf einen wert 10 draufaddierst, sowie der if-anweisung für bedingte ausführung von code setze ich mal als bekannt voraus ;-)

    eventuell brauchst du noch setTimeout oder setInterval, um die überprüfung, ob die zeitspanne schon abgelaufen/überschritten ist, wiederholt auszuführen.

    gruss,
    wahsaga

    1. hi

      das zeug mit getmilliSeconds()
      etc. kenn ich schon.
      aber ich hab das halt nich gebacken gegriegt
      eine feste sekunde +10 sekunden mit der sich immer wieder aktualisierenden sekunde zu vergelcihen, wobei die if abfrage natürlich auch bekannt ist.
      ich hab das ganze mit keypress probiert.
      kanns daran gelegen haben das es nich ging?
      -------------------------------------------
      abfrage sah ungefähr so aus:
      zweiteSek wurde natürlich auch als variable deklariert und der wert auch reingeladen aus ner datumsfunktion und so und meiner meinung nach hättes auch funktionieren müssen, hats aber nich.
      ersteSek ist die variable die nur einmal reinkam.

      if(ersteSek+10 =zweiteSek)
      {
       alert("ende")
      }

      noch mehr tipps?

      1. hi,

        if(ersteSek+10 =zweiteSek)

        wenn du mal ein bisschen weiter unten schaust ([pref:t=57096&m=319398]) - dort haben wir soeben schon mal erklärt, was der unterschied zwischen einem zuweisungs- und einem vergleichsoperator ist.
        ich denke nicht, dass sich diese grundlegende sache seitdem geändert hat :-)

        gruss,
        wahsaga

        1. stell dir vor wahsaga,
          auch den unterschied zwischen den zwei dingern kenn ich schon.
          bloß dummerweise gings auch so nicht.
          nochn tipp?

          1. hi,

            stell dir vor wahsaga,
            auch den unterschied zwischen den zwei dingern kenn ich schon.

            kann ich ja nicht wissen - das was du zusammen mit der aussage "geht nicht" gepostet hast, war jedenfalls falsch.

            bloß dummerweise gings auch so nicht.
            nochn tipp?

            "geht nicht" ist hier noch nie als fehlerbeschreibung akzeptiert worden.

            beschreibe als genau, was du versucht hast, und welche fehlermeldungen etc. du erhalten hast.

            gruss,
            wahsaga

            1. hi,
              das is der Code den ich bisher hab:

              <html>
              <head>
              <script>
              var ersteSek;

              function ersteZeit()
              {
                var erstesDatum = new Date();
                ersteSek = erstesDatum.getSeconds();
              }

              function zweiteZeit()
              {
               var zweitesDatum = new Date();
               var zweiteSek    = zweitesDatum.getSeconds();

              if(ersteSek+5 == zweiteSek)
               {
                alert("Vorbei");
               }

              window.setTimeout('zweiteZeit()',1000);
              }
              </script>
              </head>
              <body>
              <textarea cols="25" rows="5" onKeydown="zweiteZeit()"></textarea>
              </body>
              </html>

              1. hi,

                <script>

                script? watdennfürnscript?
                visual basic, vogonisch - oder eventuell doch javascript?

                function ersteZeit()

                funktionen machen sich natürlich immer recht schick im code.
                wenn man sie dann auch noch irgendwo _aufruft_, werden die in ihnen notierten anweisungen eventuell sogar eine wirkung entfalten ...

                gruss,
                wahsaga

    2. Moin!

      hi,

      also ich schreib den ersten buchstaben in das feld,
      was du mit einem geeigneten eventhandler á la onkeydown o.ä. abfangen kannst.
      dann hab ich noch 10 sekunden zeit und dann kann ich nichts mehr eingeben.

      O.K. Eigentlich interessiert Dich die Zeit gar nicht. Es gibt eine Möglichkeit einen TimeOut für Funktionen zu setzen:

      <form name="test1">
      <input type="text" name="input1" onkeydown="countdown()"><span style="display:hidden; border:1px solid black; width:100px" id="fake1"> </span>
      <form>
      <!--
      Wir brauchen: Ein Formularfeld, klar. Und ein gefaktes Formularfeld. Nicht alle Browser können Formularfelder schützen. Wir bauen also mit CSS ein zunächst unsichtbares gefaktes "Formularfeld" und zehn Sekunden nach der ersten Eingabe in das richtige Formularfeld wird mittels Timeout eine Funktion "feld_sperren()" gestartet, die das Inputfeld unsichtbar macht und das bisher unsichtbare "Formularfeld mit dem Inhalt aus dem echten Formularfeld versorgt und anzeigt.
      Zuvor werden die <> umgewandelt, um die Anzeige von HTML- Tags zu unterbinden.

      -->
      <script type="text/javascript">
      <!--
      function countdown() {
        sperre=window.setTimeout('feld_sperren()',10000)
        /* zeit in Millisekunden */
      }

      function feld_sperren() {
        inhalt=document.forms('test1').elements('input1').value;
        inhalt=inhalt.replace (/</, <);
        inhalt=inhalt.replace (/>/, >);
        document.getElementsById('fake1').innerHTML=str;
        document.forms('test1').elements('input1').style.display="none";
        document.getElementsById('fake1').display='inline';
        window.clearTimeout(sperre);
      }
      //-->
      </script>

      Für die weitergehnde Gestaltung des gefakten Formularfeldes (Schrift, Größe etc.) bemühe bitte den CSS- Teil von Selfhtml.

      MFFG (Mit freundlich- friedfertigem Grinsen)

      fastix®

      --
      Meinereinerselbst ist auf der Suche nach Aufträgen
      1. Moin!

        Da Du über Grundkenntnisse verfügst ist Dir sicher aufgefallen, daß:

        document.getElementsById('fake1').innerHTML=str;
        falsch ist und:

        document.getElementsById('fake1').innerHTML=inhalt;

        lauten muss.

        MFFG (Mit freundlich- friedfertigem Grinsen)

        fastix®

        --
        Meinereinerselbst ist auf der Suche nach Aufträgen