Core: Tastertur Eingabe abwarten

Hi Leute,
     ich habe eine Formular Validierung mit JS realisiert, jedoch
     funktioniert sie noch nicht ganz so wie ich es mir vorstelle.

Die Grund Idee war es während der Usereingabe ein Feld "Proofing"
     anzuzeigen und erst danach, nachdem der User seine Eingabe vollendet,
     sprich aufgehört hat etwas einzutippen das Ergebnis anzuzeigen.

Jedoch scheitert es mir hier etwas an der Vorstellungskraft,..
     Wie könnte ich realisieren effektiv und präzise abzufragen,
     ob der User fertig mit seiner Eingabe ist und das nicht nur im Fall
     "onblure" sondern eben auch - wenn keine weitere Eingabe mehr erfolgt.

Proofing - soll ca. 1-2 Sekunden lang angezeigt werden.

Ich hoffe sehr das Ihr gute Ideen habt wie man dieses Aufgabenstellung
     lösen könnte. lG Core

  1. Du kannst Dir mit einem Timeout auf dem Keypress-Attribut ein simuliertes Zusatzevent schaffen:

    inputnode.onkeypress=function(){  
       if (inputnode.keystoptimeout) { window.clearTimeout(inputnode.keystoptimeout); }  
       inputnode.keystoptimeout = window.setTimeout(function() {  
          if (typeof inputnode.onkeystop == 'function') {  
             inputnode.onkeystop.apply(inputnode);  
          }  
       }, 1000);  
    }
    

    Hier gehe ich von 1000ms ohne Tastendruck aus, um die Eingabe auch ohne onblur als beendet anzusehen. Diesen Wert kannst Du natürlich nach eigener Vorstellung anpassen.

    Gruß, LX

    --
    RFC 5984, Satz 7 (Security Considerations) (...) Terroristische Organisationen könnten die "Schlechte Nachrichten verbreiten sich schneller"-Schwachstelle aus RFC 1216 ausnutzen.
    1.   
        
                if (this.keystoptimeout)  
                     window.clearTimeout(this.keystoptimeout);  
      												  
                this.keystoptimeout = window.setTimeout(function(){  
      													  
      	             console.log('vergangen');  
      															  
      	  }, 1000);  
      
      

      Vielen Dank für die Antworten,
           die Lösung vom LX ist auch des Rätsels Lösung.
           Bisher hatte ich es schon mit setTimeout realisiert aber kannte
           das "clearen" des Timeouts noch nicht.

      Klar kann man nicht wissen ob der User wirklich fertig ist,..
           Aber wenn Beispielsweise: in diesem Beispiel 1 Sekunde vergangen ist
           könnte man einfach davon ausgehen das er fertig ist,..

      Es ging mir nur darum das der Status Proofing (reine
           Effekthascherei) nicht durch eine Error oder Warnung unterbrochen
           wird um dann erst recht wieder nach einer gefühlten Millisekunde
           wieder in den Status Proofing zu verfallen. Unschönes Flackern.

      Vielen Dank für die Antworten!

  2. Hallo Core,

    da es kein Event für "nichts tun" gibt, konntest du bei jedem Tastendruck (z.B. onkeyup) einen Timeout (window.setTimeout) starten (und den alten löschen), der nach angemessener Zeit reagiert.

    Gruß, Jürgen

  3. Hi,

    also wenn Du hier schon in Versform schreibst, dann doch bitte auch gereimt.

    Die Grund Idee war es während der Usereingabe ein Feld "Proofing"

    Soll denn da irgendwas abgedichtet oder imprägniert werden?

    Wie könnte ich realisieren effektiv und präzise abzufragen,
         ob der User fertig mit seiner Eingabe ist und das nicht nur im Fall
         "onblure" sondern eben auch - wenn keine weitere Eingabe mehr erfolgt.

    Dazu benötigst Du das prophecy js framework, in Verbindung mit dem Kristallkugel.js.

    Mit anderen Worten: Du kannst nicht entscheiden, ob der User grade eine Pause beim Eintippen macht oder ob er nichts mehr eintippt.

    Proofing - soll ca. 1-2 Sekunden lang angezeigt werden.

    Schon wieder dieses Abdichten/Imprägnieren.

    cu,
    Andreas

    --
    Warum nennt sich Andreas hier MudGuard?
    O o ostern ...
    Fachfragen per Mail sind frech, werden ignoriert. Das Forum existiert.
    1. @@MudGuard:

      nuqneH

      also wenn Du hier schon in Versform schreibst, dann doch bitte auch gereimt.

      Es setzt ein Schreiberling behende
      Zeilenumbruch nicht nur ans Absatzende,
      nein, er tut dies ohnegleichen
      auch schon nach 42 Zeichen.

      Worauf zum Poeten man ihn erklärt,
      seiner Poesie jedoch verwehrt,
      der Gattung „Kunst“ sein zu eigen.
      Also reimen, Dichter! Oder schweigen!

      Qapla'

      --
      Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
      (Mark Twain)
      1. Mahlzeit Gunnar Bittersmann,

        Es setzt ein Schreiberling behende

        [...]

        Wumbaba!

        Es fehlt allerdings immer noch eine funktionierende Zitatsammlung ... :-(

        MfG,
        EKKi

        --
        sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
        1. @@EKKi:

          nuqneH

          Es fehlt allerdings immer noch eine funktionierende Zitatsammlung ... :-(

          Ich hab auch schon 8 Vorschläge auf Lager.

          Ich dachte, das stünde schon längst im Bugtracker. Ich habe aber kein Ticket dazu gefunden, also ein neues erstellt.

          Ob den Bugtracker wohl noch jemand ernst nimmt?

          Qapla'

          --
          Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
          (Mark Twain)
          1. [latex]Mae  govannen![/latex]

            Ich dachte, das stünde schon längst im Bugtracker. Ich habe aber kein Ticket dazu gefunden, also ein neues erstellt.

            845

            Stur lächeln und winken, Männer!
            Kai

            --
            Dank Hixies Idiotenbande geschieht grade eben wieder ein Umdenken
            in Richtung "Mess up the Web".(suit)
            SelfHTML-Forum-Stylesheet
            1. @@Kai345:

              nuqneH

              845

              Oh, dann wird’s wohl Zeit für ein Drängelposting. Möchtest du einen Thread eröffnen?

              Qapla'

              --
              Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
              (Mark Twain)
              1. [latex]Mae  govannen![/latex]

                845

                Oh, dann wird’s wohl Zeit für ein Drängelposting. Möchtest du einen Thread eröffnen?

                <face expression="ratlos" />

                Stur lächeln und winken, Männer!
                Kai

                --
                Dank Hixies Idiotenbande geschieht grade eben wieder ein Umdenken
                in Richtung "Mess up the Web".(suit)
                SelfHTML-Forum-Stylesheet
  4. [latex]Mae  govannen![/latex]

    Jedoch scheitert es mir hier etwas an der Vorstellungskraft,..
         Wie könnte ich realisieren effektiv und präzise abzufragen,
         ob der User fertig mit seiner Eingabe ist und das nicht nur im Fall
         "onblure" sondern eben auch - wenn keine weitere Eingabe mehr erfolgt.

    Verläßlich gar nicht - du wirst nie wissen, ob der Nutzer fertig ist, oder nur gerade über die Eingabe nachdenkt / ans Telefon geht / aufn Pott muß / ....

    Ich hoffe sehr das Ihr gute Ideen habt wie man dieses Aufgabenstellung
         lösen könnte. lG Core

    Um ein grundsätzliches Zeitfenster zu realisieren:
    Starte bei jedem Tastendruck einen Timer, der mit dem nächsten Tastendruck wieder abgebrochen wird und danach neu gestartet wird. Somit wird die Prüfroutine erst gestartet, wenn für <zeit> keine Eingabe mehr erfolgt ist.

    setTimeout() und dessen Rückgabewert helfen dabei. (Starte nicht für jeden Tastendruck einen _zusätzlichen_ Timer)

    Stur lächeln und winken, Männer!
    Kai

    --
    Dank Hixies Idiotenbande geschieht grade eben wieder ein Umdenken
    in Richtung "Mess up the Web".(suit)
    SelfHTML-Forum-Stylesheet
  5. Hallo,

    ich habe eine Formular Validierung mit JS realisiert, jedoch
         funktioniert sie noch nicht ganz so wie ich es mir vorstelle.

    erstens: Bitte vergewaltige nicht den automatischen Zeilenumbruch, sondern stelle einfach eine für dich angenehme Fensterbreite ein, damit andere nicht abgehackte Zeilen mit viel Leerraum sehen müssen. Und das sogar am Zeilenanfang!

    Proofing - soll ca. 1-2 Sekunden lang angezeigt werden.

    Zweitens: Englisch scheint Glückssache zu sein (MudGuard hat schon drauf hingewiesen).

    Drittens: Wenn du schon durch phantasievoll-falsche Schreibweisen glänzen willst, dann aber auch richtig. Also nicht "Tastertur", sondern "Tastertour".

    Ciao,
     Martin

    --
    Disziplin: Teppichböden wiederfinden, wenn man sie verlegt hat.
    Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
    1. Hi!

      Was haengt ihr euch denn alle an dem Wort proofing auf? Ich weiss jetzt natuerlich nicht, was in diesem Fall damit genau gemeint ist, denke aber schon dass es ok eingesetzt wurde: Im Sinne von idiot-proofing.

      --
      Vergesst Chuck Norris.
      Sponge Bob kann unter Wasser grillen!
      1. Hi,

        idiot-proofing.

        Wer braucht schon imprägnierte Idioten? ;-)

        cu,
        Andreas

        --
        Warum nennt sich Andreas hier MudGuard?
        O o ostern ...
        Fachfragen per Mail sind frech, werden ignoriert. Das Forum existiert.
        1. Hallo,

          idiot-proofing.
          Wer braucht schon imprägnierte Idioten? ;-)

          wobei der durchaus gebräuchliche Ausdruck "fool-proof" (idiotensicher) ja auch nichts mit Imprägnieren zu tun hat, sondern höchstens mit "resistent" oder "widerstandsfähig gegen ...".

          Ciao,
           Martin

          --
          In Ägypten haben früher 150000 Leute 35 Jahre lang an einer Pyramide gearbeitet. Aber bei uns arbeiten doppelt so viele Leute doppelt so lange allein an der Baugenehmigung.
            (Dieter Nuhr, deutscher Kabarettist)
          Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
          1. Moin!

            wobei der durchaus gebräuchliche Ausdruck "fool-proof" (idiotensicher) ja auch nichts mit Imprägnieren zu tun hat, sondern höchstens mit "resistent" oder "widerstandsfähig gegen ...".

            Richtig: bullet proof z.b. Eine Imprägnierung ist aber ja auch nichts anderes als etwas sicher zu machen. z.b. wiederstandsfähiger gegen Wasser.

            --
            Vergesst Chuck Norris.
            Sponge Bob kann unter Wasser grillen!