MarkusFröhlich: Function erst nach 2 sec ausführen

Hallo Leute.

Ich habe ein ganz normales Formularfeld mit einem Textfeld.

<form name="Formular" action="javascript:ShowData()">
<input type="text" id="Suche" name="Suche" size="50" />
<input type="submit" value="Start" />
</form>

Dieses Formular führt die Function ShowData() aus, die dann per Ajax Datensätze in einer Tabelle sucht und diese dann ausgibt.

Funktioniert alles prima.

Nur mächte ich mir gerne den Start Button ersparen.
Es soll ungefähr so aussehen: Man gibt etwas im suchfeld ein, das Script wartet ca 1-2 ob einen neue eingabe erfolgte....wenn nicht dann die function "ShowData()" ausführen, damit ein Request ensteht.

Probiert habe ich im Formular schon mit onkeyup="javascript:setTimeout('ShowData()', 1000)"

Funktioniert....leider wird die function "ShowData()" wenn man z.b "Hallo" ins suchfeld eingibt, 1sec zeitversetzt 5 mal aufgerufen :-)

Wie würdet ihr das lösen?

Danke Markus

  1. Hallo Leute.

    Funktioniert....leider wird die function "ShowData()" wenn man z.b "Hallo" ins suchfeld eingibt, 1sec zeitversetzt 5 mal aufgerufen :-)

    Logisch: "onkeyup" wird ausgeführt wenn eine Taste losgelassen wird. ;-)

    Wie würdet ihr das lösen?

    nimm onLoad oder documentReady und setze http://de.selfhtml.org/javascript/objekte/window.htm#set_timeout@title=set_timeout()

    Viele Grüße,
    Rob

    1. Moin!

      Wie würdet ihr das lösen?

      nimm onLoad oder documentReady und setze http://de.selfhtml.org/javascript/objekte/window.htm#set_timeout@title=set_timeout()

      Das ist leider nicht die Loesung fuer das beschriebene Problem. Onkeyup ist schon okay. Nur der Rest (Ueberpruefung) fehlt.

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

    Mit *Trommelwirbel* setTimeout().

    Du schreibst: "Man gibt etwas im suchfeld ein, das Script wartet ca 1-2 ob einen neue eingabe erfolgte....wenn nicht dann die function "ShowData()" ausführen, damit ein Request ensteht."

    Du programmierst: Man gibt etwas im Suchfeld ein und eine Sekunde, nachdem eine Taste losgelassen wurde, wird Showdata aufgerufen.

    Wenn Du jetzt dein Programm einfach an deine erste Aussage anpasst, wird das auch was.

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