Input Feld bei Klick auf Submit leeren (nicht so leicht wie es sich anhört!)

skiddo

Grünschnabel
Hallo Community!

Mein Problem ist das: Ich hab ein kleines Chatscript in meinem Projekt. Da ist in dem Frame ein Form und ein IFrame. Im Iframe wird der Chat ausgelesen. Die Funktionen zum Chatschreiben sind allerdings in einem ganz anderem Frame.
Ich linke also mit dem Form auf den "action" Frame, der den Inhalt in die DB schreibt und der Iframe liest es aus. So wird das Form-Frame nie refreshed.

Nun hab ich mehrere Ansätze ausprobiert auf einen Klick des Buttons das Chatinput zu leeren, weil es nervt das es immer voll bleibt. Ich bin allerdings dank meinem beschränktem Wissen in Javascript nicht weit gekommen.

Wenn ich
Code:
onclick="chat.textinput.value='';"
benutze, ist das Feld leer, bevor es abgeschickt wird, und es kommt kein Text im ActionFrame mehr an.

Ich bitte um Hilfe!

Schöne Grüße, skiddo
 
Hi Sven

Danke für die Antwort.
Auf die Idee bin ich auch schon gekommen, aber das ging mächtig in die Hose. Ich habe mir das so vorgestellt:
Code:
// Pseudocode
function clear()
{
  //  inputfeld leeren
}
function waitforclear()
{
  // 50ms warten
  clear();
}

<input type="submit" onClick="waitforclear">

Ist aber wahrschienlich eher eine dumme Idee. Wär super wenn mir da jemand helfen könnte!

Grüße, skiddo

Edit: Das es nicht geklappt hat lag daran, das ich kein Javascript kann.
 
So sollte es klappen:
Code:
onclick="setTimeout('document.chat.textinput.value=\'\'',500)"

...sofern "chat" der Name des Formulars und "textinput" der Name des Eingabefeldes ist.
(mit "Name" meine ich dabei das name-Attribut und nicht die ID)

Die Probleme in deinem Versuch sind:
1. beim Funktionsaufruf fehlen die Klammern
Code:
<input type="submit" onClick="waitforclear()">

2. In JS gibt es keine Möglichkeit, Funktionen warten zu lassen wie in anderen Sprachen(bspw. sleep() in PHP)
Du kannst Anweisungen nur zeitverzögert ausführen lassen per setTimeout(), sie werden dabei aber aus dem Kontext der Funktion herausgerissen.
 
Hi Sven

Vielen Dank für deine (Uhrzeitlich) späte Hilfe.
Dein Code funktioniert einwandfrei!

Noch eine kleine Frage hinterher: Ist es möglich, den Fokus wieder auf das Inputfeld zu setzen, so das man es nicht wieder anklickenmuss um weiter zu schreiben?

Grüße, Skiddo
 

Neue Beiträge

Zurück