IE9 HTML5-Platzhalter - wie sind die Menschen erreichen?
Ich versuche, die placeholder="xxx"
Attribut in meiner web-Anwendung, und ich will nicht, um eine Besondere visuelle für IE9. Können die Leute werfen einige gute Vorschläge für das erreichen dieser Funktionalität in IE9?
Ich habe ein paar links auf die hier aber keine der vorgeschlagenen Skripte waren ausreichend... und die Antworten waren ab Mitte 2011, so dass ich dachte, vielleicht gibt es eine bessere Lösung gibt. Vielleicht mit ein weit verbreiteter jQuery-plugin? Ich will nicht alles verwenden, erfordert aufdringlich-code-wie das Erfordernis einer bestimmten css-Klasse oder so etwas.
Dank.
BEARBEITEN - ich brauche auch diese arbeiten für Passwort-Eingabefelder.
//the below snippet should work, but isn't.
$(document).ready(function() {
initPlaceholders()();
}
function initPlaceholders() {
$.support.placeholder = false;
var test = document.createElement('input');
if ('placeholder' in test) {
$.support.placeholder = true;
return function() { }
} else {
return function() {
$(function() {
var active = document.activeElement;
$('form').delegate(':text, :password', 'focus', function() {
var _placeholder = $(this).attr('placeholder'),
_val = $(this).val();
if (_placeholder != '' && _val == _placeholder) {
$(this).val('').removeClass('hasPlaceholder');
}
}).delegate(':text, :password', 'blur', function() {
var _placeholder = $(this).attr('placeholder'),
_val = $(this).val();
if (_placeholder != '' && (_val == '' || _val == _placeholder)) {
$(this).val(_placeholder).addClass('hasPlaceholder');
}
}).submit(function() {
$(this).find('.hasPlaceholder').each(function() { $(this).val(''); });
});
$(':text, :password').blur();
$(active).focus();
});
}
}
}
InformationsquelleAutor Adam Levitt | 2012-07-03
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wir gerade mal recherchiert, die gleiche Sache. Wir entschieden uns für die Wiederverwendung diese gist, durch Aaron McCall, nachdem Sie einige kleinere änderungen. Der Hauptvorteil ist, dass es einfach, leicht zu verstehen-code:
Entfernen Sie die kernel-und setup_placeholders Teile. Rufen Sie sofort in einer anonymen Funktion.
Hinzufügen
var
vortest
.Für Browser, die das unterstützen
placeholder
, es fällt einfach zurück. Es übernimmt auch die neuen input-Elemente (beachten Sie die Verwendung vondelegate
) in den bestehenden Formen. Aber nicht behandelt dynamisch neue Elemente. Es könnte möglicherweise geändert werden, um zu tun, also mitjQuery.on
.Wenn Sie nicht dieses mögen, können Sie einer von denen,hier. Jedoch, einige von Ihnen sind zu kompliziert, oder haben fragwürdige design-Entscheidungen wie
setTimeout
für die Entdeckung neuer Elemente.Beachten Sie, dass es braucht, um die Verwendung von zwei Paaren von Klammern, da Sie fordern eine anonyme Funktion, die dann den Aufruf der Funktion zurückgegeben (dies könnte man ausklammern anders):
um klar zu sein, wir nicht schreiben die verlinkten gist.
Nein, es wird nicht für das Passwort, aber Sie können fügen Sie einfach
, :password
nach:text
.Für diese Arbeit auf die Passwort-Felder müssen geändert werden, um text-Felder (was nicht erlaubt ist in einigen Versionen des IE (in dem Fall müssen Sie zum erstellen einer temporären text-Feld neben dem Passwort-Feld). Sonst würde es nur anzeigen, * * * * anstelle der Platzhalter-text.
Dieses plugin von Mathias Bynens funktioniert einwandfrei ohne jegliche Optimierungen oder änderungen.
InformationsquelleAutor Matthew Flaschen
Schrieb ich ein jquery-plugin, eine Weile zurück, fügt der Platzhalter unterstützt jeder browser, der Sie nicht unterstützt und nichts tut, in diejenigen, die tun.
Platzhalter-Plugin
InformationsquelleAutor corymathews
Hier ist ein jQuery-plugin, das funktioniert mit Passwort-Felder als gut. Es ist nicht so winzig wie der code vorgeschlagen von Matthew, aber es hat ein paar mehr Updates. Ich habe dieses erfolgreich zusammen mit H5Validate als gut.
http://webcloud.se/code/jQuery-Placeholder/
Hmm, es nicht funktioniert auf Kennwort-Felder. Sehen Sie den jeweiligen code ab Zeile 10 hier: github.com/danielstocks/jQuery-Placeholder/blob/master/...
Es ist nur seltsam, weil es eigentlich nicht verhält, auf die Kennwort-Felder. Ich habe mir den code und sehen, was Sie zeigen. Hmm....
Das ist sehr seltsam. Können Sie einen DOM-Inspektor, um zu sehen, was Los ist??? (Platzhalter-set, Typ-Attribut änderungen oder dummy-text-Feld eingefügt wird etc?)
InformationsquelleAutor powerbuoy