jQuery Eingabewert Fokus und Unschärfe

9

Ich habe den folgenden Code, damit der Wert verschwindet, wenn ein Benutzer ein Eingabefeld auswählt, aber der Standardwert wird wieder eingefügt, sobald ein Benutzer darauf klickt.

%Vor%

Aber genau so will ich es nicht. Wenn ein Benutzer Text einfügt, möchte ich nicht, dass der Standardtext überschreibt, was der Benutzer eingegeben hat. Ich bin auch ziemlich neu in jQuery, so würde jede Hilfe sehr geschätzt werden.

    
Karl 01.11.2012, 18:01
quelle

3 Antworten

18

In Ihrer focus() -Methode sollten Sie vor dem Löschen prüfen, ob sie gleich defaultText ist, und in Ihrer blur() -Funktion müssen Sie nur prüfen, ob val() leer ist, bevor Sie% co_de setzen %. Wenn Sie mit mehreren Eingaben arbeiten, ist es besser, eine Klasse anstelle von ID zu verwenden. Ihr Selektor wäre also defaultText , wenn die Klasse "Eingabe" ist. Selbst wenn es eine ID wäre, würden Sie sie als input.input referenzieren.

%Vor%

Setze es in Aktion in diesem jsFiddle .

    
doublesharp 01.11.2012, 18:03
quelle
1

Überprüfen Sie in Ihrem Blur-Handler, ob der Benutzer nichts geschrieben hat. In diesem Fall setzen Sie den Standardtext wie folgt zurück:

%Vor%     
Nelson 01.11.2012 18:04
quelle
0

Eine alte Frage + Ich mag es nicht, wenn Leute eine andere Lösung anbieten, anstatt mein Problem zu lösen, aber dennoch: Die Verwendung eines HTML-Platzhalterattributs mit einem jQuery-Plugin würde das Problem lösen.

Sie können auch die HTML-Datenattribute verwenden und davon schreiben / lesen.

    
Wancieho 02.03.2016 13:56
quelle