Jquery, wenn das Kennwort-Feld leer ist
Ich versuche, fügen Sie sichtbaren text, um ein Passwort-Feld, das sagt "Geben Sie ein Passwort" und klicken Sie auf den text wird gelöscht, und geben Sie Punkte. Ich habe zwei Eingänge, einer vom Typ=text und ein anderes Passwort. Die Passwort-Eingabe ist verborgen vor dem start aber angezeigt, nachdem Sie klicken Sie auf die Eingabe mit der "Enter a password" - Befehl.
Er tut dies http://mudge.github.com/jquery_example/, aber ich versuche, es zu machen für Passwort-Felder.
HTML
<input type="text" id="password_instructions" />
<input type="password" id="password" />
Den Jquery
var $password = $('#password');
$password.hide(); //hide input with type=password
$("#password_instructions").click(function() {
$( this ).hide();
$('#password').show();
$('#password').focus();
if ($password.val().length === 0) { //if password field is empty
$password.focusout(function() { //when clicking outside empty password input
$( this ).hide();
$('#password_default_value').show();
$('#password_instructions').default_value('Enter a password'); //will clear on click
});
}
});
Was nicht funktioniert:
Beim füllen der Passwort-Eingabe (mit Punkten erscheinen) und klicken Sie auf Auschecken der Eingang ist versteckt und die #password_instruction Eingang zeigt. So ist es nicht respektiert, wenn leere Anweisung. Für einige Grund es behandelt die Eingabe als leer, auch wenn ich tippte ein Passwort.
Was mache ich hier falsch?
- Welche version von jQuery benutzt du?
- Die neueste einem. Warum?
- Ah, ich dachte, ich lese etwas über
.val()
in den neuen ein, aber es war über.attr()
. Keine Sorge. 🙂 - Überprüfen Sie diese Antwort, es kann helfen: stackoverflow.com/a/43185203/1770571
Du musst angemeldet sein, um einen Kommentar abzugeben.
Du scheinst zu erwarten, dass es eine Art "pause" nach dem Aufruf
focus()
und der überrest der JS-code wird nur dann ausgeführt, wenn der Anwender fertig ist, Tippen Sie das Passwort irgendwie.Dies ist nicht wahr. Die Funktion wurde vollständig ausgeführt, in einem Rutsch.
Müssen Sie bewegen das folgende Stück
in anderen standalone-Funktion:
Meinst du:
Wenn Sie wollen, um dies zu implementieren, die für ältere Browser, die Sie haben zu bewegen, die Prüfung für das onBlur-Ereignis. In jQuery dieser sieht wie folgt aus: