const error_text_elem_general = document.getElementById('error_text_general'); const error_text_elem_username = document.getElementById('error_text_username'); const error_text_elem_password1 = document.getElementById('error_text_password1'); const error_text_elem_password2 = document.getElementById('error_text_password2'); const error_text_elem_email = document.getElementById('error_text_email'); const error_text_elem_firstname = document.getElementById('error_text_firstname'); const error_text_elem_lastname = document.getElementById('error_text_lastname'); const error_text_elem_street = document.getElementById('error_text_street'); const error_text_elem_city = document.getElementById('error_text_city'); const error_text_elem_postcode = document.getElementById('error_text_postcode'); const error_text_elem_country = document.getElementById('error_text_country'); const error_text_elem_housenumber = document.getElementById('error_text_housenumber'); const error_text_elem_gender = document.getElementById('error_text_gender'); const username_elem = document.getElementById('username'); const password1_elem = document.getElementById('password1'); const password2_elem = document.getElementById('password2'); const email_elem = document.getElementById('email'); const firstname_elem = document.getElementById('firstname'); const lastname_elem = document.getElementById('lastname'); const street_elem = document.getElementById('street'); const city_elem = document.getElementById('city'); const postcode_elem = document.getElementById('postcode'); const country_elem = document.getElementById('country'); const housenumber = document.getElementById('housenumber'); const gender = document.getElementById('gender') function handleError(error){ if(!error){ error_text_elem_general.textContent = "Fehler beim Registrieren"; return; } error = error.split("_"); console.log(error) if(error[1] == "username"){ str = ""; switch(error[2]){ case "short": str = "Der Benutzername ist zu kurz
-> mindestens 3 Zeichen"; break; case "long": str = "Der Benutzername ist zu lang
-> maximal 30 Zeichen"; break; case "invalid": str = "Der Benutzername ist ungültig
-> nur Buchstaben und Zahlen"; break; case "duplicate": str = "Der Benutzername ist bereits vergeben"; break; default: str = error[2]; break; } username_elem.classList.add("input_error"); error_text_elem_username.innerHTML = str; } if(error[1] == "password"){ str = ""; switch(error[2]){ case "short": str = "Das Passwort ist zu kurz
-> mindestens 8 Zeichen"; break; case "long": str = "Das Passwort ist zu lang
-> maximal 200 Zeichen"; break; case "invalid": str = "Das Passwort ist ungültig
-> nur Buchstaben, Zahlen und ausgewählte Sonderzeichen (!@#$%^&*.,;:)"; break; case "mismatch": str = "Die Passwörter stimmen nicht überein"; password2_elem.classList.add("input_error"); break; default: str = error[2]; break; } password1_elem.classList.add("input_error"); error_text_elem_password1.innerHTML = str; } if(error[1] == "email"){ str = ""; switch(error[2]){ case "invalid": str = "Die E-Mail-Adresse ist ungültig"; break; case "duplicate": str = "Die E-Mail-Adresse ist bereits vergeben"; break; default: str = error[2]; break; } email_elem.classList.add("input_error"); error_text_elem_email.innerHTML = str; } if(error[1] == "firstname"){ str = ""; switch(error[2]){ case "short": str = "Der Vorname ist zu kurz
-> mindestens 1 Zeichen"; break; case "long": str = "Der Vorname ist zu lang
-> maximal 80 Zeichen"; break; case "invalid": str = "Der Vorname ist ungültig
-> nur Buchstaben und Bindestriche"; break; default: str = error[2]; break; } firstname_elem.classList.add("input_error"); error_text_elem_firstname.innerHTML = str; } if(error[1] == "lastname"){ str = ""; switch(error[2]){ case "short": str = "Der Nachname ist zu kurz
-> mindestens 1 Zeichen"; break; case "long": str = "Der Nachname ist zu lang
-> maximal 80 Zeichen"; break; case "invalid": str = "Der Nachname ist ungültig
-> nur Buchstaben und Bindestriche"; break; default: str = error[2]; break; } lastname_elem.classList.add("input_error"); error_text_elem_lastname.innerHTML = str; } if(error[1] == "street"){ str = ""; switch(error[2]){ case "short": str = "Die Straße ist zu kurz
-> mindestens 2 Zeichen"; break; case "long": str = "Die Straße ist zu lang
-> maximal 80 Zeichen"; break; case "invalid": str = "Die Straße ist ungültig
-> nur Buchstaben, Zahlen uns Leerzeichen"; break; default: str = error[2]; break; } street_elem.classList.add("input_error"); error_text_elem_street.innerHTML = str; } if(error[1] == "city"){ str = ""; switch(error[2]){ case "short": str = "Die Stadt ist zu kurz
-> mindestens 1 Zeichen"; break; case "long": str = "Die Stadt ist zu lang
-> maximal 80 Zeichen"; break; case "invalid": str = "Die Stadt ist ungültig
-> nur Buchstaben, Zahlen und Leerzeichen"; break; default: str = error[2]; break; } city_elem.classList.add("input_error"); error_text_elem_city.innerHTML = str; } if(error[1] == "postcode"){ str = ""; switch(error[2]){ case "short": str = "Die Postleitzahl ist zu kurz
-> mindestens 1 Zeichen"; break; case "long": str = "Die Postleitzahl ist zu lang
-> maximal 20 Zeichen"; break; case "invalid": str = "Die Postleitzahl ist ungültig
-> nur Zahlen"; break; default: str = error[2]; break; } postcode_elem.classList.add("input_error"); error_text_elem_postcode.innerHTML = str; } if(error[1] == "country"){ str = ""; switch(error[2]){ case "short": str = "Das Land ist zu kurz
-> mindestens 1 Zeichen"; break; case "long": str = "Das Land ist zu lang
-> maximal 80 Zeichen"; break; case "invalid": str = "Das Land ist ungültig
-> nur Buchstaben, Zahlen und Leerzeichen"; break; default: str = error[2]; break; } error_text_elem_country.innerHTML = str; } if(error[1] == "housenumber"){ str = ""; switch(error[2]){ case "invalid": str = "Die Hausnummer ist ungültig
-> nur Zahlen"; break; default: str = error[2]; break; } housenumber_elem.classList.add("input_error"); error_text_elem_housenumber.innerHTML = str; } if(error[1] == "gender"){ str = "" switch(error[2]){ case "short": str = "Die Anrede ist zu kurz
-> mindestens 1 Zeichen"; break; case "long": str = "Die Anrede ist zu lang
-> maximal 15 Zeichen"; break; case "invalid": str = "Die Anrede ist ungültig
-> nur Buchstaben, Leerzeichen und ausgewählter Zeichen (. -)"; break; default: str = error[2]; break; } error_text_elem_gender.innerHTML = str; } } function resetErrors(){ error_text_elem_general.innerHTML = ""; error_text_elem_username.innerHTML = ""; error_text_elem_password1.innerHTML = ""; error_text_elem_password2.innerHTML = ""; error_text_elem_email.innerHTML = ""; error_text_elem_firstname.innerHTML = ""; error_text_elem_lastname.innerHTML = ""; error_text_elem_street.innerHTML = ""; error_text_elem_city.innerHTML = ""; error_text_elem_postcode.innerHTML = ""; error_text_elem_country.innerHTML = ""; error_text_elem_housenumber.innerHTML = ""; error_text_elem_gender.innerHTML = "" username_elem.classList.remove("input_error"); password1_elem.classList.remove("input_error"); password2_elem.classList.remove("input_error"); email_elem.classList.remove("input_error"); firstname_elem.classList.remove("input_error"); lastname_elem.classList.remove("input_error"); street_elem.classList.remove("input_error"); city_elem.classList.remove("input_error"); postcode_elem.classList.remove("input_error"); country_elem.classList.remove("input_error"); housenumber.classList.remove("input_error"); gender.classList.remove("input_error"); } function submitForm(){ resetErrors(); formObj = { username: username_elem.value, password1: password1_elem.value, password2: password2_elem.value, email: email_elem.value, firstname: firstname_elem.value, lastname: lastname_elem.value, street: street_elem.value, city: city_elem.value, postcode: postcode_elem.value, country: country_elem.value, housenumber: housenumber.value, gender: gender.value } $.ajax({ url : "/auth/register", type: "POST", data : formObj, success: function(data) { if(data == "0"){ window.location.href = "/login"; }else{ handleError(data); } }, error: function (jqXHR, textStatus, errorThrown) { console.log(jqXHR); console.log(textStatus); console.log(errorThrown); } }); }