Rolf b: jQuery: Auf Passwortlänge prüfen

Beitrag lesen

    $('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

  if (deepThought == 42)
    antwort = true;
  else
    antwort = false;

Manche sind stolz, dass sie diesen Codeklumpen durch einen ternären Operator „verbessern“ können:

  antwort = (deepThought == 42) ? true : false;

Aber wenn man ihnen dann das hier zeigt:

  antwort = deepThought == 42;

geraten sie in Verwirrung.

Im konkreten Fall würde eine verbesserte keyup function so aussehen:

   $('input[type="password"]').keyup(function() {
      $('input[type="submit"]').prop('disabled', $(this).val().length  < 6);
   });