jQuery: Auf Passwortlänge prüfen
bearbeitet von Rolf b> ~~~js, bad
> $('input[type="password"]').keyup(function() {
> if($(this).val().length >= 6) {
> $('input[type="submit"]').prop('disabled', false);
> }
> if($(this).val().length <= 6) {
> $('input[type="submit"]').prop('disabled', true);
> }
> });
> ~~~
Mal abgesehen davon, dass die beiden IFs sich für length=6 beißen (was aber optisch egal ist, weil der Browser ohnehin erst rendert wenn das JS durch ist), scheinen viele Leute nicht zu wissen, dass Vergleichsoperatoren boolesche Werte liefern. Wie oft habe ich schon Code gesehen wie
~~~js, bad
if (deepThought == 42)
antwort = true;
else
antwort = false;
~~~
Manche sind stolz, dass sie diesen Codeklumpen durch einen ternären Operator „verbessern“ können:
~~~js, bad
antwort = (deepThought == 42) ? true : false;
~~~
Aber wenn man ihnen dann das hier zeigt:
~~~js, good
antwort = deepThought > 42;
~~~
geraten sie in Verwirrung.
Im konkreten Fall würde eine verbesserte keyup function so aussehen:
~~~js, good
$('input[type="password"]').keyup(function() {
$('input[type="submit"]').prop('disabled', $(this).val().length < 6);
});
~~~