$('.default-value').each(function() {
var default_value = this.value;
$(this).focus(function(){
if(this.value == default_value) {
this.value = '';
}
});
$(this).blur(function(){
if(this.value == '') {
this.value = default_value;
}
});
});
Standard-Eingabewert setzen/löschen
Chris Coyier am
Dies ist ein sehr alter Schnipsel. Jetzt verwendet man besser `placeholder` oder ein Äquivalent. Und eine wichtige Sache – was ist mit dem Senden des Werts? Sie legen den Standardwert fest, aber manchmal ist das falsch.
Wenn man bedenkt, dass `placeholder` Teil von HTML5 ist, wäre diese JS-Methode ein sicherer Fallback für ältere Browser…
Ich bin mir jedoch nicht sicher, was das Problem mit dem Senden des Werts ist; wenn das Feld leer ist, wird der Standardwert des `input`-Tags angewendet, wenn das Feld nicht leer ist, behält es den eingegebenen Wert.
In meinem Formular habe ich Felder, die nicht erforderlich sind, aber vorab ausgefüllten Text als Usability-Hinweis haben. Mehrere dieser Felder durchlaufen verschiedene Arten von Validierungen (richtige Anzahl von Zeichen usw.).
Wie würde ich nur den Standardwert dieser spezifischen Felder löschen?
Beispiel
Ich muss "Geben Sie den Promotion-Code ein" beim Absenden löschen, damit der Wert nicht durch die Validierung läuft und einen Alarm auslöst.
Wenn Sie auf neuere Browser abzielen (oder wenn die Berücksichtigung älterer Browser kein Problem darstellt), wäre es besser, es wie folgt einzurichten:
[code][/code]
Um diese JS-Methode zu verwenden, fügen Sie das bereitgestellte Skript auf Ihrer Seite ein und verwenden Sie Folgendes:
[code][/code]
Mein Fehler… Zu sehr an Forum-Code-Tags gewöhnt.
Für die HTML5 `placeholder`-Methode
Für die JS `value`-Methode
Was zum Teufel? Ok… Machen wir es einfach so: Fügen Sie für diese JS-Methode einfach `class="default-value"` zum `input`-Tag hinzu und lassen Sie alles andere so, wie Sie es haben.
Leider muss dies auch in IE6 funktionieren. Derzeit habe ich einen `span` unter dem Eingabefeld, um die Funktionalität zu simulieren. Aber das möchte ich so nicht machen.
Die beiden Formulare, in denen ich dies verwende, sind Formulare mit einem Eingabefeld. Wäre es beim Absenden möglich, den Standardwert per `onclick` oder `onsubmit` zu entfernen?
Perfekt! Genau das, wonach ich gesucht habe. Danke für die Schnipsel.