Passwortfeld auf länge testen

Bei diesem Beispiel wird vor dem Absenden angezeigt, ob das Passwort mindestens 8 Zeilen lang ist

Der hier verwendete Code

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Passwortvalidierung</title> <style> form { border: 3px solid #f1f1f1; } input[type=text], input[type=password] { width: 100%; padding: 12px 20px; margin: 8px 0; display: inline-block; border: 1px solid #ccc; box-sizing: border-box; } button { background-color: #4CAF50; color: white; padding: 14px 20px; margin: 8px 0; border: none; cursor: pointer; width: 100%; } button:hover { opacity: 0.8; } button:disabled { background-color: grey; } .container { padding: 16px; } @media screen and (max-width: 300px) { span.psw { display: block; float: none; } } </style> </head> <body> <form> <div class="container"> <label for="psw"><b>Passwort</b></label> <input type="text" placeholder="Passwort eingeben" name="psw" id="passwordInput" required> <p id="msg"></p> <button id="passwordButton" disabled="true">Passwort speichern</button> </div> </form> </body> <script> var val=document.getElementById("passwordInput"); var msg = document.getElementById("msg"); var but=document.getElementById('passwordButton'); but.addEventListener('click',function(){ alert('senden ist erlaubt') }) val.addEventListener('keyup',function(){ var lang,leer; var message=''; if (val.value=="") { message+= "Das Passwortfeld ist leer<br>"; leer='false'; }else{ leer='true'; } if (val.value.length < 8) { message+= "Das Passwort muss mindestens 8 Zeichen lang sein!<br>"; lang='false'; }else{ lang='true'; } if (lang=='true' && leer=='true') { but.style.color = "green"; but.disabled = ''; } else { but.style.color = "red"; but.disabled = 'true'; } msg.innerHTML=message; }) </script> </html>