const validation = new JustValidate("#signup"); validation .addField("#first_name", [ { rule: "required", errorMessage: "Pflichtfeld" } ]) .addField("#last_name", [ { rule: "required", errorMessage: "Pflichtfeld" } ]) .addField("#email", [ { rule: "required", errorMessage: "Pflichtfeld" }, { rule: "email", errorMessage: "Ungültig" }, { validator: (value) => () => { return fetch("validate-email.php?email=" + encodeURIComponent(value)) .then(function(response) { return response.json(); }) .then(function(json) { return json.available; }); }, errorMessage: "Bereits registriert" } ]) .addField("#phone", [ { rule: "required", errorMessage: "Pflichtfeld" }, { rule: "minLength", value: 6, errorMessage: "Ungültige Telefonnummer" }, { validator: (value) => { return /^[1-9][0-9\s\-\/()]{4,}$/.test(value); }, errorMessage: "Ohne führende 0, nur Ziffern" } ]) .addField("#password", [ { rule: "required", errorMessage: "Pflichtfeld" }, { rule: "password", errorMessage: "Zu leicht" } ]) .addField("#password_confirmation", [ { validator: (value, fields) => { return value === fields["#password"].elem.value; }, errorMessage: "Passwörter müssen übereinstimmen" } ]) .onSuccess((event) => { document.getElementById("signup").submit(); });