Tastertur Eingabe abwarten
Core
- javascript
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
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
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!
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
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
@@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'
Mahlzeit Gunnar Bittersmann,
Es setzt ein Schreiberling behende
[...]
Wumbaba!
Es fehlt allerdings immer noch eine funktionierende Zitatsammlung ... :-(
MfG,
EKKi
@@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'
[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.
Stur lächeln und winken, Männer!
Kai
@@Kai345:
nuqneH
Oh, dann wird’s wohl Zeit für ein Drängelposting. Möchtest du einen Thread eröffnen?
Qapla'
[latex]Mae govannen![/latex]
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
[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
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
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.
Hi,
idiot-proofing.
Wer braucht schon imprägnierte Idioten? ;-)
cu,
Andreas
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
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.