-
jQuery - Eingabefelder beim Fokussieren leeren
23.02.2010 in Javascript-Frameworks von daniel_koch
- Kategorie: Javascript-Frameworks
- Erstellt mit Programmversion: 1.4
- Kompatibel ab Programmversion: .
- Dateigröße (PDF): 1.3 MB
- Bisherige Zugriffe: 2521
Lieber Gast …
… die Inhalte von PSD-Tutorials.de stehen nur registrierten Mitgliedern zur Verfügung. Damit wollen wir den Communitygedanken weiterführen. Als Mitglied trägst du - wenn auch nur im Kleinen - zum Puls der Community bei. Und nur so ist es möglich, weiterhin hochwertige Inhalte für alle bereitzustellen.
Vorteile der kostenlosen Mitgliedschaft
Mit der kostenlosen und schnell erledigten Registrierung erhältst du viele nachhaltige Vorteile, die wir dir hier in aller Kürze aufzeigen möchten:
- PSD steht für professionelles Know-how in den Bereichen Bildbearbeitung mit Photoshop, Fotografie, Webentwicklung, Layout- und Vektorbearbeitung, 3D-Bearbeitung mit Cinema 4D und Co.
- Über 2200 Tutorials mit druckbarer PDF-Datei und teilweise den zugehörigen Arbeitsmaterialien
- Mehr als 500 Video-Trainings als Stream zur Direktanzeige und zum Download
- Abruf von über 1000 Downloads zu Photoshop-Presets, 3D-Modellen, Grußkarten, Texturen & Co
- Zugriff auf ein sehr aktives Forum mit Antworten im Minutentakt
- Deine Daten sind sicher. Sie werden nicht weitergegeben! Die Mitgliedschaft kann jederzeit und ohne Aufwand wieder gelöscht werden.
Reinschnuppern als Gast
Niemand kauft gerne die Katze im Sack, auch wenn sie kostenlos ist. Wir haben eine Handvoll Tutorials und Video-Trainings ausgesucht, die du auch als Gast ohne Registrierung ansehen kannst. Gefallen sie dir, stehen dir nach der Registrierung alle oben genannten Inhalte zur Verfügung.
- Download: Sepia-Vintage-Effekt-Aktion
- Download: Spiegelungen 2
- Download: Vektor-Logo (Eidechse)
- Tutorial: Linien zum Glühen bringen
- Tutorial: Ballons aus einer Schublade
- Tutorial: Neue Pinsel erstellen leicht gemacht
- Tutorial: Kommerzielle Fotografie 01: Berufswunsch Fotografie
- Videotraining: Die Programmoberfläche und der Arbeitsbereich von Adobe InDesign
- Videotraining: Lichtscheinkontureneffekt mit Animation
- Videotraining: CorelDRAW X6 Grundlagen - Hilfsmittel Freihand, 2-Punkt-Linie, Bezier, B-Spline, Polylinie, Stift, 3-Punkt-Kurve
- Videotraining: CorelDRAW X6 Grundlagen: Hilfsmittel Form - Heranziehen, Zurückweisen
Das Punktesystem
Einen winzigen Haken gibt es noch. Es gibt bei uns ein Punktesystem. Damit soll erreicht werden, dass Mitglieder sich aktiv in unserer Community beteiligen. Sobald du im Forum schreibst oder Tutorials kommentierst, bekommst du Punkte. Mit diesen Punkten kannst du wiederum Tutorials anschauen oder Downloads herunterladen. Mit der Registrierung bei PSD-Tutorials.de erhältst du ein Startguthaben von 100 Punkten, womit du schon ein gutes Stück weit kommst.
Photoshop-Workshop-DVD - Webdesign
- Webdesign mit Photoshop: alle erstellten Layouts mit Arbeitsdatei (PSD)!
- Umsetzung erstellter Weblayouts in HTML/CSS
- Tipps & Tricks zum Webdesign in Photoshop und zur Webentwicklung
Kommentare
Tutorial empfehlen
Anleitung (Bilder + Extras werden nur für Mitglieder eingeblendet)
Auf vielen Webseiten findet man Eingabefelder, die mit Texten vorbelegt sind. Ganz typisch ist das z.B. für Suchfelder. Eines dieser speziellen Eingabefelder finden Sie übrigens auch auf den Seiten von Psd-Tutorials.de.

[Beispiel anzeigen]

<pre> Vorname: <input type="text" class="feld" value="Ihr Vorname" /> Name: <input type="text" class="feld" value="Ihr Nachname" /> E-Mail: <input type="text" class="feld" value="Ihre E-Mail-Adresse" /> </pre>
In diesem Beispiel sind die Eingabefelder allerdings noch statisch. Denn die vordefinierten Werte werden zwar wie gewünscht angezeigt, sie sind allerdings auch dann noch sichtbar, wenn man in die Felder klickt. Genau das wird durch die jQuery-Skripte, die in diesem Tutorial vorgestellt werden, geändert. Auch hier werden die vordefinierten Texte zunächst angezeigt.
[Beispiel anzeigen]


Nachdem die Formularfelder definiert sind, muss jQuery eingebunden werden.
<script type="text/javascript" src="http://www.google.com/jsapi"></script>b
<script type="text/javascript">
/* <![CDATA[ */
google.load("jquery", "1.3.2");
/* ]]> */
</script>
Weiter geht es mit dem eigentlichen Skript, das hier zunächst in voller Länge gezeigt wird.
[Beispiel anzeigen]
<script type="text/javascript">
/* <![CDATA[ */
$(document).ready(function() {
$(".feld").each(function(){
var wert = $(this).val();
$(this)
.focus(function(){
if ($(this).val() == wert) {
$(this).val("");
}
})
.blur(function(){
if ($(this).val() == "") {
$(this).val(wert);
}
});
});
});
/* ]]> */
</script>
Durch die Anweisung
$(".feld").each(function()
wird die hier verwendete each()-Funktion für jedes feld-Element ausgeführt. Um den Wert des value-Attributs der Variablen wert zu übergeben, wird die folgende Syntax verwendet:
var wert = $(this).val();
Über var deklariert man die lokale Variable wert. Da diese Anweisung innerhalb von each() definiert wurde, wird sie auf alle im DOM vorhandenen Eingabefelder, die die Klasse feld besitzen, angewendet. Als Event-Handler werden blur() und focus() verwendet.
- focus() – Wird ausgelöst, wenn dem Element der Fokus zugewiesen wird. Das kann durch Anklicken des Elements oder durch Setzen des Cursors in das Feld über die Tabulatortaste geschehen.
- blur() – Wird ausgelöst, wenn das Element den Fokus verliert.
Sobald im vorliegenden Beispiel eines der beiden Ereignisse eintritt, wird überprüft, ob der eingegebene Text den innerhalb der input-Elemente angegebenen value-Werten entspricht. Über val() bestimmt man letztendlich den angezeigten Inhalt der Eingabefelder. Dadurch wird u.a. erreicht, dass – sollte z. B. von den Besuchern zwar der Fokus auf ein Feld gesetzt, dort aber nichts eingetragen worden sein – wieder der ursprüngliche Feldwert gesetzt wird. (Wobei der ursprüngliche Feldwert der ist, der über value im HTML-Code zugewiesen wurde.)
Übrigens funktioniert die Syntax nicht nur bei einzeiligen Eingabefeldern. Auch textarea-Elemente lassen sich mit der gezeigten Funktionalität ausstatten.
<textarea name="textarea" class="feld" id="textarea" cols="45" rows="5">Ihre Nachricht</textarea>
[Beispiel anzeigen]

In jQuery 1.4 wurden – neben zahlreichen anderen Neuerungen – zwei zusätzliche Events eingeführt:
- focusin()
- focusout()
Beide Events "bubbeln", ermöglichen also das sogenannte Event-Bubbling. Dabei wird immer zuerst das innere Element ausgelöst. Dieses innere Element ist immer das, das am weitesten von der Dokumentwurzel entfernt ist. Hat dieses Objekt das angegebene Ereignis verarbeitet bzw. kennt es den Event-Handler nicht, reicht es das Event an das nächsthöhere Element weiter. Genau daher rührt auch der Begriff bubbeln. Denn das Ereignis steigt – vergleichbar mit einer Luftblase – bis zur Dokumentwurzel, die im DOM bekanntermaßen durch das windows-Objekt repräsentiert wird.
<script type="text/javascript" src="http://www.google.com/jsapi"></script>
<script type="text/javascript">
/* <![CDATA[ */
google.load("jquery", "1.4");
/* ]]> */
</script>
Am Skript selbst ändert sich dann nicht viel. Im vorliegenden Beispiel werden lediglich die beiden zuvor verwendeten Event-Handler focus() und blur() durch focusin() und focusout() ersetzt. Das Skript sieht dann insgesamt folgendermaßen aus:
[Beispiel anzeigen]
<script type="text/javascript">
/* <![CDATA[ */
$(document).ready(function() {
$(".feld").each(function(){
var wert = $(this).val();
$(this)
.focusin(function(){
if ($(this).val() == wert) {
$(this).val("");
}
})
.focusout(function(){
if ($.trim($(this).val()) == "") {
$(this).val(wert);
}
});
});
});
/* ]]> */
</script>
An der eigentlichen Funktionsweise des Skripts hat sich augenscheinlich nichts geändert. Denn in der Tat sind diese Ereignisse größtenteils mit focus() und blur() identisch. Allerdings wurden sie ohnehin hauptsächlich deswegen geschaffen, um Entwicklern das Schreiben eigener Events zu erleichtern.
[Beispiel anzeigen]
<form> <input name="username" value="Ihr Name" onfocus="if(this.value==this.defaultValue)this.value='';" onblur="if(this.value=='')this.value=this.defaultValue;" /> </form>
Das funktioniert in dieser Form tadellos.
Fazit
Mit jQuery lassen sich die Werte von Eingabefeldern sehr einfach ermitteln und neu setzen. Hilfreich können die gezeigten Skripte vor allem dann sein, wenn bei Formularfeldern nicht offensichtlich ist, was eingetragen werden soll. Allerdings sollte man es mit dem Vorbelegen von Eingabefeldern auch nicht übertreiben, da vor allem umfangreiche Formulare dann sehr schnell chaotisch bzw. unübersichtlich wirken können.-
Reklame
-
-
- Eigene Karten im Stil von Google Maps und co. erstellen
- Feengleich und märchenhaft...
- Bilder gezeichnet aussehen lassen
- Typo3 extension Probleme
- Neuzugang
- Luftballons in AE oder Blender? Tipps? :)
- Vorstellung :)
- Hilfslinien einfärben?
- Hilfe zu Maya Dynamics
- Bild in dynamischer HP als Background bzw. Logo
- Wie Bridge Cache automatisch löschen?
- Logo ausdenken/entwerfen ???
- AtomPils
- Fotomontage erstellen
- Wie sind 'Club-Bilder' bearbeitet?
- Internet Explorer seltsames Problem mit Debugging
- Scriptographer im Illustrator CS5 :?:
- Pinsel radiert in Ebenenmaske nur noch transparent
- Bitte eure Meinung!
- Dreamweaver arbeitsbereich ähnlich Notepad++
-
-
Aktuelles Commag
Anzeige
-
-
- Dank Google schnell mal ein Lied aufnehmen?
- Buch-Autorin fordert Barcode für Menschen - Sinnvoll?
- Alternative zu Adobe Acrobat - Welche Programme benutzt ihr zum Anschauen von PDF-Dateien?
- Abstimmen für [Voting] Canonfreaks vs Nikonjunkies Runde 31
- H&M-Models in der Kritik - wegen Photoshop-Bräune - Was meint ihr dazu?
- News-Archiv
-
-
Anzeige


HiGhDeNsItY
04.03.2010 - 10:03
Interessante Lösung, gerade für umfangreichere Formulare bietet sich dies an.
TTJanis
03.03.2010 - 21:24
finde ich eine gute Hilfe - sieht man häufig auf Webseiten und ich hatte bis jetzt noch keine Ahnung wie ich das erreichen konnte - danke
Anke1234
23.02.2010 - 14:21
Danke sehr hilfreich.