jQuery Passwort Ansicht ändern – show/hide password

  • HTML
  • JS
  • CSS
HTML
									<div class="form-group">
	<div class="input-group mb-2">
		<input autocomplete="off" type="password" name="password" class="form-control" id="password" placeholder="password" value="hey_i'm_a_secret_password_:)">
		<div class="input-group-append">
			<div id="togglePasswort" class="input-group-text">
				<i class="fa-solid fa-eye-slash"></i>
			</div>
		</div>
	</div>
</div>
								
JS
									if ( jQuery('div#togglePasswort').length ) {
	jQuery('div#togglePasswort').on('click', function() {
		var type	=	jQuery(this).closest('div.form-group').find('input').attr('type');
		if ( type == 'password' ) {
			jQuery(this).closest('div.form-group').find('input').attr('type', 'text');
		} else {
			jQuery(this).closest('div.form-group').find('input').attr('type', 'password');
		}
		jQuery(this).find('i').toggleClass('fa-eye-slash fa-eye');
	});
}
								
CSS
									.form-group {
	padding: 24px;
}
.input-group {
	display: flex;
	flex-wrap: nowrap;
	align-content: stretch;
	align-items: stretch;
}
.input-group-append {
	margin-left: auto;
	background: #eee;
	width: 48px;
	display: flex;
	justify-content: center;
	align-content: center;
	align-items: center;
	cursor: pointer;
}
.input-group-append:hover {
	background: #5dd39e;
	color: #fff;
}
								

So geht's: Passwort anzeigen und verstecken mit Bootstrap

Für eines meiner Projekte habe ich ein Admin Dashboard gebaut. Gerade da bietet sich Bootstrap an, da man sich voll und ganz auf die Backend Programierung konzentrieren muss, während das Frontend schnell, aber schön gemacht ist.

Zunächst einmal brauchen wir eine Klasse mit der ID togglePasswort. Mit Klick auf dieses Element wollen wir das Passwort in Klartext anzeigen lassen und auch wieder verstecken. In meinem Beispiel nutze ich die Icons von Fontawesome.

php
				<div class="form-group">
	<div class="input-group mb-2">
		<input autocomplete="off" type="password" name="password" class="form-control" id="password" placeholder="password" value="hey_i'm_a_secret_passwort_:)">
		<div class="input-group-append">
			<div id="togglePasswort" class="input-group-text">
				<i class="fa fa-eye-slash" aria-hidden="true"></i>
			</div>
		</div>
	</div>
</div>
			
Mehr anzeigen

Das war's auch schon. Hier findet ihr auch weitere Form Beispiele von Bootstrap.

Mit jQuery passiert die Magie

Nun benötigen wir noch ein paar Zeilen JS-Code. Bevor sie erst einmal durchlaufen werden, prüfen wir, ob es das Element div#togglePasswort überhaupt existiert. Wenn ja, dann können wir mit einem Klick auf das Element den Type des Input-Feldes ermitteln. Ist der Type password, dann tauschen wir es mit dem Type-Attribut text. Und wenn das Type-Attribut text ist natürlich mit password.

Damit sich beim Klick auf das Element auch das Auge-Icon ändert, toogeln wir Klassen fa-eye-slash mit fa-eye. So sieht der User auch, das etwas passiert. Etwas fürs "Auge" quasi 🙂

javascript
				if ( jQuery('div#togglePasswort').length ) {
	jQuery('div#togglePasswort').on('click', function() {
		var type	=	jQuery(this).closest('div.form-group').find('input').attr('type');
		if ( type == 'password' ) {
			jQuery(this).closest('div.form-group').find('input').attr('type', 'text');
		} else {
			jQuery(this).closest('div.form-group').find('input').attr('type', 'password');
		}
		jQuery(this).find('i').toggleClass('fa-eye-slash fa-eye');
	});
}
			
Mehr anzeigen

1 Kommentar

Schreibe ein Kommentar zu jQuery Passwort Ansicht ändern – show/hide password

  1. avatar danielDaniel sagt:

    Das Ganze lässt sich auch ein wenig einfacher lösen, wenn man die Elemente direkt anspricht:

    jQuery(‚#toggle‘).on(‚click‘, function() {
    let pass = jQuery(‚#password‘);
    if (pass.attr(‚type‘) === ‚password‘) {
    pass.attr(‚type‘, ‚text‘);
    } else {
    pass.attr(‚type‘, ‚password‘);
    }
    jQuery(this).toggleClass(‚fa-eye-slash fa-eye‘);
    });

    Die Prüfung auf Existenz kann an dieser Stelle weggelassen werden. Warum sollten wir Code einbinden, der auf Elemente verweist, die es nicht gibt?

Hinterlasse ein Kommentar zum Beitrag "jQuery Passwort Ansicht ändern – show/hide password"

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Barrierefrei & zukunftssicher? Lass uns das gemeinsam angehen.